musl/arch/x86_64/bits
Rich Felker afc35d5efd replace bad cancellation cleanup abi with a sane one
the old abi was intended to duplicate glibc's abi at the expense of
being ugly and slow, but it turns out glib was not even using that abi
except on non-gcc-compatible compilers (which it doesn't even support)
and was instead using an exceptions-in-c/unwind-based approach whose
abi we could not duplicate anyway without nasty dwarf2/unwind
integration.

the new abi is copied from a very old glibc abi, which seems to still
be supported/present in current glibc. it avoids all unwinding,
whether by sjlj or exceptions, and merely maintains a linked list of
cleanup functions to be called from the context of pthread_exit. i've
made some care to ensure that longjmp out of a cleanup function should
work, even though it is not required to.

this change breaks abi compatibility with programs which were using
pthread cancellation, which is unfortunate, but that's why i'm making
the change now rather than later. considering that most pthread
features have not been usable until recently anyway, i don't see it as
a major issue at this point.
2012-02-09 02:33:08 -05:00
..
alltypes.h.sh don't define wchar_t on c++ 2011-10-15 00:28:49 -04:00
endian.h Port musl to x86-64. One giant commit! 2011-02-15 07:32:09 -05:00
errno.h fix missing ENOTSUP error code 2011-03-11 09:50:54 -05:00
fcntl.h fix O_SYNC definition, cleanup fcntl.h 2011-04-14 22:06:30 -04:00
fenv.h Port musl to x86-64. One giant commit! 2011-02-15 07:32:09 -05:00
float.h add missing float.h macros 2011-04-10 18:27:47 -04:00
ioctl.h Port musl to x86-64. One giant commit! 2011-02-15 07:32:09 -05:00
ipc.h numerous fixes to sysv ipc 2011-04-13 16:45:43 -04:00
limits.h move all limits that don't vary out of bits/limits.h, into main limits.h 2011-06-25 15:38:00 -04:00
mman.h namespace fixes for sys/mman.h 2011-04-20 15:55:58 -04:00
msg.h numerous fixes to sysv ipc 2011-04-13 16:45:43 -04:00
posix.h typo in macro definitions for x86_64 2011-08-14 15:19:17 -04:00
reg.h Port musl to x86-64. One giant commit! 2011-02-15 07:32:09 -05:00
setjmp.h Port musl to x86-64. One giant commit! 2011-02-15 07:32:09 -05:00
shm.h numerous fixes to sysv ipc 2011-04-13 16:45:43 -04:00
signal.h cleanup redundancy in bits/signal.h versions 2011-09-19 20:02:12 -04:00
socket.h cleanup more bits cruft (sysmacros and socket) 2011-09-18 16:34:13 -04:00
stat.h Update x86_64 bits to mirror (modulo platform differences) the latest changes 2011-02-15 08:02:33 -05:00
statfs.h fix the definition of struct statvfs to match lsb abi 2011-09-19 23:35:48 -04:00
stdarg.h use compiler builtins for variadic macros when available 2011-04-27 23:41:48 -04:00
stdint.h Port musl to x86-64. One giant commit! 2011-02-15 07:32:09 -05:00
syscall.h update syscalls with off_t arguments to handle argument alignment, if needed 2011-09-21 20:11:10 -04:00
termios.h various legacy and linux-specific stuff 2011-03-18 21:52:26 -04:00
user.h fix x86_64 user.h (previously was just a copy of i386) 2011-09-22 15:36:25 -04:00
wchar.h fix the type of wchar_t on arm; support wchar_t varying with arch 2011-09-19 17:39:51 -04:00