| Commit message (Expand) | Author | Age | Files | Lines |
| * | make brace placement in public header typedef'd structs consistent•••commit befa5866ee30d09c0c96e88af2eabff5911342ea performed this change
for struct definitions that did not also involve typedef, but omitted
the latter.
| Rich Felker | 2016-07-03 | 1 | -2/+1 |
| * | make brace placement in public header struct definitions consistent•••placing the opening brace on the same line as the struct keyword/tag
is the style I prefer and seems to be the prevailing practice in more
recent additions.
these changes were generated by the command:
find include/ arch/*/bits -name '*.h' \
-exec sed -i '/^struct [^;{]*$/{N;s/\n/ /;}' {} +
and subsequently checked by hand to ensure that the regex did not pick
up any false positives.
| Rich Felker | 2016-07-03 | 1 | -2/+1 |
| * | fix siginfo_t for mips•••si_errno and si_code are swapped in mips siginfo_t compared to other
archs and some si_code values are different. This fix is required
for POSIX timers to work.
based on patch by Dmitry Ivanov.
| Szabolcs Nagy | 2016-01-26 | 1 | -0/+9 |
| * | mips: fix mcontext_t register array field name•••glibc and uclibc use gregs instead of regs
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
| Felix Fietkau | 2015-07-21 | 1 | -1/+1 |
| * | fix MINSIGSTKSZ values for archs with large signal contexts•••the previous values (2k min and 8k default) were too small for some
archs. aarch64 reserves 4k in the signal context for future extensions
and requires about 4.5k total, and powerpc reportedly uses over 2k.
the new minimums are chosen to fit the saved context and also allow a
minimal signal handler to run.
since the default (SIGSTKSZ) has always been 6k larger than the
minimum, it is also increased to maintain the 6k usable by the signal
handler. this happens to be able to store one pathname buffer and
should be sufficient for calling any function in libc that doesn't
involve conversion between floating point and decimal representations.
x86 (both 32-bit and 64-bit variants) may also need a larger minimum
(around 2.5k) in the future to support avx-512, but the values on
these archs are left alone for now pending further analysis.
the value for PTHREAD_STACK_MIN is not increased to match MINSIGSTKSZ
at this time. this is so as not to preclude applications from using
extremely small thread stacks when they know they will not be handling
signals. unfortunately cancellation and multi-threaded set*id() use
signals as an implementation detail and therefore require a stack
large enough for a signal context, so applications which use extremely
small thread stacks may still need to avoid using these features.
| Rich Felker | 2015-03-18 | 1 | -0/+5 |
| * | fix signal.h breakage from moving stack_t to arch-specific bits•••in the previous changes, I missed the fact that both the prototype of
the sigaltstack function and the definition of ucontext_t depend on
stack_t.
| Rich Felker | 2014-03-18 | 1 | -6/+6 |
| * | fix mips stack_t•••like almost everything on mips, this is gratuitously different.
| Rich Felker | 2014-03-18 | 1 | -1/+1 |
| * | move signal.h definition of stack_t to arch-specific bits•••it's different at least on mips. mips version will be fixed in a
separate commit to show the change.
| Rich Felker | 2014-03-18 | 1 | -0/+6 |
| * | remove useless and incorrect uc_regspace member from mips ucontext_t•••this seems to have been copied erroneously from the arm version of the
file. it's fairly harmless but it's a mistake and better to fix now
than later.
| Rich Felker | 2014-03-18 | 1 | -1/+0 |
| * | fix _NSIG and SIGRTMAX on mips•••a mips signal mask contains 128 bits, enough for signals 1 through
128. however, the exit status obtained from the wait-family functions
only has room for values up to 127. reportedly signal 128 was causing
kernelspace bugs, so it was removed from the kernel recently; even
without that issue, however, it was impossible to support it correctly
in userspace.
at the same time, the bug was masked on musl by SIGRTMAX incorrectly
yielding 64 on mips, rather than the "correct" value of 128. now that
the _NSIG issue is fixed, SIGRTMAX can be fixed at the same time,
exposing the full range of signals for application use.
note that the (nonstandardized) libc _NSIG value is actually one
greater than the max signal number, and also one greater than the
kernel headers' idea of _NSIG. this is the reason for the discrepency
with the recent kernel changes. since reducing _NSIG by one brought it
down from 129 to 128, rather than from 128 to 127, _NSIG/8, used
widely in the musl sources, is unchanged.
| Rich Felker | 2013-08-10 | 1 | -1/+1 |
| * | fixup mcontext stuff to expost gregset_t/fpregset_t as appropriate | Rich Felker | 2012-11-25 | 1 | -1/+19 |
| * | sigcontext/mcontext cleanup for arch-specific bits•••with these changes, the members/types of mcontext_t and related stuff
should closely match the glibc definitions. unlike glibc, however, the
definitions here avoid using typedefs as much as possible and work
directly with the underlying types, to minimize namespace pollution
from signal.h in the default (_BSD_SOURCE) profile.
this is a first step in improving compatibility with applications
which poke at context/register information -- mainly debuggers, trace
utilities, etc. additional definitions in ucontext.h and other headers
may be needed later.
if feature test macros are used to request a conforming namespace,
mcontext_t is replaced with an opaque structure of the equivalent size
and alignment; conforming programs cannot examine its contents anyway.
| Rich Felker | 2012-11-23 | 1 | -11/+11 |
| * | fix up leftover, incorrect NSIG definitions in arch-specific signal.h | Rich Felker | 2012-11-23 | 1 | -1/+0 |
| * | add back NSIG, removed from powerpc in last commit, but for all archs•••unlike the previous definition, NSIG/_NSIG is supposed to be one more
than the highest signal number. adding this will allow simplifying
libc-internal code that makes signal-related syscalls, which can be
done as a later step. some apps might use it too; while this usage is
questionable, it's at least not insane.
| Rich Felker | 2012-11-21 | 1 | -0/+2 |
| * | fix redef of sigprocmask constants on mips•••this fix is easier than trying to reorder the header stuff
| Rich Felker | 2012-07-12 | 1 | -0/+3 |
| * | more mips bits-header fixes•••signal handling was very broken because of this
| Rich Felker | 2012-07-12 | 1 | -2/+6 |
| * | fix mips mcontext_t structure size•••otherwise offs in ucontext_t will be wrong, and break code that
inspects or modifies the signal makes (including cancellation code).
| Rich Felker | 2012-07-12 | 1 | -1/+5 |
| * | initial version of mips (o32) port, based on work by Richard Pennington (rdp)•••basically, this version of the code was obtained by starting with
rdp's work from his ellcc source tree, adapting it to musl's build
system and coding style, auditing the bits headers for discrepencies
with kernel definitions or glibc/LSB ABI or large file issues, fixing
up incompatibility with the old binutils from aboriginal linux, and
adding some new special cases to deal with the oddities of sigaction
and pipe syscall interfaces on mips.
at present, minimal test programs work, but some interfaces are broken
or missing. threaded programs probably will not link.
| Rich Felker | 2012-07-11 | 1 | -0/+73 |