History log of /seL4-refos-master/libs/libmuslc/arch/x86_64_sel4/bits/signal.h
Revision Date Author Comments
# 28fa19b9 04-Aug-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Fix up x86_64_sel4 arch after merge


# de8621ca 16-Aug-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Support a seL4 x86_64 build


# d5a50453 17-Mar-2015 Rich Felker <dalias@aerifal.cx>

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.


# 9505bfbc 18-Mar-2014 Rich Felker <dalias@aerifal.cx>

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.


# bd5f221e 18-Mar-2014 Rich Felker <dalias@aerifal.cx>

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.


# 2d0f495e 23-Mar-2013 Rich Felker <dalias@aerifal.cx>

add deprecated SIGIOT alias for SIGABRT

reportedly some programs (e.g. showkeys in the kbd package) use it.


# 3bb167b3 18-Dec-2012 rofl0r <retnyg@gmx.net>

x86_64/bits/signal.h: fix typo in REG_CSGSFS


# 5c5e45e5 06-Dec-2012 Rich Felker <dalias@aerifal.cx>

move signal.h REG_* macros under _GNU_SOURCE protection

they were accidentally exposed under just baseline POSIX, which is a
big namespace pollution issue. thankfully glibc only exposes them
under _GNU_SOURCE, not under any of its other options, so omitting
the pollution in the default _BSD_SOURCE profile does not hurt
application compatibility at all.


# a631c5df 06-Dec-2012 rofl0r <retnyg@gmx.net>

bits/signal.h: add register names for x86(_64)

glibc exposes them from ucontext.h.
since that header includes signal.h, it is safe to put them
into bits/signal.h, if _GNU_SOURCE is defined.


# a8da6c2f 25-Nov-2012 Rich Felker <dalias@aerifal.cx>

fixup mcontext stuff to expost gregset_t/fpregset_t as appropriate


# c72fc238 23-Nov-2012 Rich Felker <dalias@aerifal.cx>

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.


# 7538708f 22-Nov-2012 Rich Felker <dalias@aerifal.cx>

fix up leftover, incorrect NSIG definitions in arch-specific signal.h


# 65b98213 21-Nov-2012 Rich Felker <dalias@aerifal.cx>

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.


# 030b452b 22-May-2012 Rich Felker <dalias@aerifal.cx>

fix missing _BSD_SOURCE support in bits/*.h

this is actually rather ugly, and would get even uglier if we ever
want to support further feature test macros. at some point i may
factor the bits headers into separate files for C base, POSIX base,
and nonstandard extensions (the only distinctions that seem to matter
now) and then the logic for which to include can go in the main header
rather than being duplicated for each arch. the downside of this is
that it would result in more files having to be opened during
compilation, so as long as the ugliness does not grow, i'm inclined to
leave it alone for now.


# f780ac5b 19-Sep-2011 Rich Felker <dalias@aerifal.cx>

cleanup redundancy in bits/signal.h versions


# 6871fd77 10-Mar-2011 Rich Felker <dalias@aerifal.cx>

make sigaltstack work (missing macros in signal.h, error conditions)


# 8668f033 19-Feb-2011 Rich Felker <dalias@aerifal.cx>

fill in some missing siginfo stuff in signal.h


# ad2fe250 18-Feb-2011 Rich Felker <dalias@aerifal.cx>

support the ugly and deprecated ucontext and sigcontext header stuff...

only the structures, not the functions from ucontext.h, are supported
at this point. the main goal of this commit is to make modern gcc with
dwarf2 unwinding build without errors.

honestly, it probably doesn't matter how we define these as long as
they have members with the right names to prevent errors while
compiling libgcc. the only time they will be used is for propagating
exceptions across signal-handler boundaries, which invokes undefined
behavior anyway. but as-is, they're probably correct and may be useful
to various low-level applications dealing with virtualization, jit
code generation, and so on...


# 44460c6d 15-Feb-2011 Rich Felker <dalias@aerifal.cx>

fix some type leakage (timer_t) from x86_64 commit


# bb89bdd0 15-Feb-2011 Nicholas J. Kain <njkain@gmail.com>

Update x86_64 bits to mirror (modulo platform differences) the latest changes
to i386.


# 1e126325 15-Feb-2011 Nicholas J. Kain <njkain@gmail.com>

Port musl to x86-64. One giant commit!