Commit Graph
76 Commits
Author SHA1 Message Date
Rich Felker ad2fe25041 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...
2011-02-18 22:03:03 -05:00
Rich Felker e9417fffb3 add pthread_atfork interface
note that this presently does not handle consistency of the libc's own
global state during forking. as per POSIX 2008, if the parent process
was threaded, the child process may only call async-signal-safe
functions until one of the exec-family functions is called, so the
current behavior is believed to be conformant even if non-ideal. it
may be improved at some later time.
2011-02-18 19:52:42 -05:00
Rich Felker 446b4207cc major improvements to temp file name generator
use current time in nanoseconds and some potentially-random (if aslr
is enabled) pointer values for the initial tempfile name generation,
and step via a cheap linear prng on collisions. limit the number of
retry attempts to prevent denial of service attacks even if an
attacker can guess the filenames.
2011-02-18 17:04:56 -05:00
Rich Felker 3e9e30166f reformat mkstemp like mkdtemp
this is cleaner and makes it easy to impose a limit on the number of
retries later if it seems desirable to do so.
2011-02-18 16:32:33 -05:00
Rich Felker d5ca067c7b add portable lchown (trivial to support and a few ancient things want it..) 2011-02-17 23:13:46 -05:00
Rich Felker 982a478433 prepare WHATSNEW for release 2011-02-17 19:15:08 -05:00
Rich Felker 6d333355e7 document in config.mak sample that x86_64 is supported 2011-02-17 18:30:41 -05:00
Rich Felker d09d068f9b update WHATSNEW in preparation for release 2011-02-17 17:57:50 -05:00
Rich Felker 127ab575fc avoid deleting the lib/empty file 2011-02-17 17:57:26 -05:00
Rich Felker e882756311 reorganize pthread data structures and move the definitions to alltypes.h
this allows sys/types.h to provide the pthread types, as required by
POSIX. this design also facilitates forcing ABI-compatible sizes in
the arch-specific alltypes.h, while eliminating the need for
developers changing the internals of the pthread types to poke around
with arch-specific headers they may not be able to test.
2011-02-17 17:16:20 -05:00
Rich Felker 4fd159568a new solution for empty lib dir (old one had some problems) 2011-02-17 17:12:52 -05:00
Rich Felker a36164c474 improve Makefile handling of git checkouts with missing lib/ and config.mak 2011-02-17 15:15:03 -05:00
Rich Felker 187fe29d5b make daemon try the operations that might fail before fork rather than after 2011-02-17 10:30:00 -05:00
Rich Felker 19e35c500b daemon should check for failures and return -1 2011-02-17 10:28:56 -05:00
Rich Felker b24bc15f5c don't compare elements with themselves during qsort.
this is actually a workaround for a bug in gcc, whereby it asserts
inequality of the keys being compared...
2011-02-17 00:03:24 -05:00
Rich Felker 798a12ecc4 ucontext is no longer in the standard, so use gnu-friendly struct name
note that this header is still bogus and needs a lot of work and
factoring into arch-dependent parts...
2011-02-16 23:36:26 -05:00
Rich Felker 417dbe92cb some gnu software wrongly uses "struct siginfo" instead of siginfo_t... 2011-02-16 22:37:26 -05:00
Rich Felker 56b784d603 add to pthread.h: pthread_mutex_timedlock and sched.h, time.h 2011-02-16 21:21:26 -05:00
Rich Felker 5cbd76c6b0 fix printf %n specifier - missing breaks had it clobbering memory 2011-02-16 18:19:46 -05:00
Rich Felker e3657ba599 patch by njk, simplifies thread register initialization for x86_64
It's not necessary to save any registers on the stack across syscall in
x86_64 __set_thread_area.  Don't waste cycles or bytes on it.
2011-02-16 09:50:57 -05:00
Rich Felker 22cd9cae81 patch from njk: make x86_64 __uniclone branchless. 2011-02-16 09:49:54 -05:00
Rich Felker bad481266e fix compile failure: legacy cuserid needs to define feature test 2011-02-16 09:30:56 -05:00
Rich Felker 571312de5f move stdio stuff that's not arch-specific out of bits 2011-02-15 19:47:22 -05:00
Rich Felker 8894947ba2 protect some limit constants with feature test macros on x86_64 2011-02-15 19:16:37 -05:00
Rich Felker f451462098 fix the types of some integer constant limits in headers 2011-02-15 19:15:45 -05:00
Rich Felker 6d36c2098b fix missing EXIT_* in stdlib.h after header cleanup 2011-02-15 17:33:52 -05:00
Rich Felker 1d72953787 feature test support in unistd.h 2011-02-15 16:28:36 -05:00
Rich Felker cda892ddbe fix directory reading on x86_64 2011-02-15 16:08:48 -05:00
Rich Felker 26f3551419 prototype for gnu strcasestr (currently a stub) 2011-02-15 16:08:19 -05:00
Rich Felker c0248191bd fix x86_64 wrongly reporting itself as ILP32 instead of LP64 2011-02-15 15:56:58 -05:00
Rich Felker 62275f7876 news for upcoming release 2011-02-15 15:52:26 -05:00
Rich Felker 4e30249643 fix another error from header cleanup, missing size_t in time.h 2011-02-15 15:25:31 -05:00
Rich Felker 3eb9feaa88 fix broken signal.h from header cleanup 2011-02-15 15:10:00 -05:00
Rich Felker 0b9a1ed00c some docs fixes for x86_64 2011-02-15 14:52:11 -05:00
Rich Felker 9b235e8374 remove standalone syscall cruft
this was originally written for an early draft of the library where
non-standard functions would reside in a static library separate from
the shared libc.so, which would implement a pure standard. the idea
was not to depend on an implementation-dependent __syscall_ret
function in the main libc. but it turned out to be better to put
everything in a single library for both static and dynamic linking
uses, and thus the (incomplete) remnants of this feature were just
enlarging the source and binary.
2011-02-15 14:39:02 -05:00
Rich Felker 44460c6d1e fix some type leakage (timer_t) from x86_64 commit 2011-02-15 14:32:46 -05:00
Rich Felker c2afb747b0 yet another ugly legacy syscall rename... 2011-02-15 05:52:27 -05:00
Rich Felker f7eb91e795 fix getrlimit handling on 32-bit systems, and ease porting to 64-bit 2011-02-15 05:42:27 -05:00
Rich Felker 13a026bd79 split off arch-specific stdarg.h stuff 2011-02-15 05:06:15 -05:00
Rich Felker 03a2f3e48c cleanup socketcall syscall interface to ease porting to sane(r) archs 2011-02-15 04:40:40 -05:00
Rich Felker cfe373146d finish moving 32-bit-specific junk out of source files. 2011-02-15 04:12:19 -05:00
Rich Felker a5bf06c035 move arch-specific internal headers into place 2011-02-15 04:00:40 -05:00
Rich Felker 7b2dd2235d finish unifying thread register handling in preparation for porting 2011-02-15 03:56:52 -05:00
Rich Felker 0b2006c8fe begin unifying clone/thread management interface in preparation for porting 2011-02-15 03:24:58 -05:00
Rich Felker 59666802fb make pthread_create return EAGAIN on resource failure, as required by POSIX 2011-02-15 02:20:21 -05:00
Rich Felker 1355fdca7c preparing build system to handle ports - step 1 2011-02-15 00:33:23 -05:00
Rich Felker 8f4865c8d2 add previously-missing ios646.h 2011-02-14 21:59:38 -05:00
Rich Felker df6e3ec74a add WHATSNEW file for 0.5.9 release 2011-02-14 21:58:53 -05:00
Rich Felker 976f42d1f1 guard against hard links to non-ordinary-files when reading tcb shadow 2011-02-14 21:15:07 -05:00
Rich Felker ca1aa5bae9 more header cleanup and conformance fixes - string.h 2011-02-14 20:53:15 -05:00
Rich Felker 131b5be2f4 more header cleanup and conformance fixes - locale.h, time.h 2011-02-14 20:45:37 -05:00
Rich Felker 1322cb82a3 header cleanup, conformance fixes - signals 2011-02-14 20:33:54 -05:00
Rich Felker c316b28445 update various bits headers for new linux additions
based on patch by nik
2011-02-14 20:03:55 -05:00
Rich Felker 6fbf8bfd75 another pointer signedness fix 2011-02-14 19:40:20 -05:00
Rich Felker a8c17e6587 fix some pointer signedness issues (this was invalid C) 2011-02-14 19:37:01 -05:00
Rich Felker c247ebdd98 more header fixes, minor warning fix 2011-02-14 19:33:11 -05:00
Rich Felker 5377715ce0 ensure standard functions mk[sd]temp don't depend on removed function mktemp 2011-02-14 19:18:06 -05:00
Rich Felker c255e5542d put confstr.c with the other conf functions 2011-02-14 19:13:18 -05:00
Rich Felker e8362c8b51 major bugfix for sigset_t (it was mistakenly 1024 bytes instead of bits)
note that object files using sigset_t (or struct sigaction) need to be
recompiled to work correctly after this fix.
2011-02-14 18:45:58 -05:00
Rich Felker 74eea628cf extensive header cleanup for standards conformance & correctness
thanks to Peter Mazinger (psm) for pointing many of these issues out
and submitting a patch on which this commit is loosely based
2011-02-14 18:41:25 -05:00
Rich Felker 80695b1d1e begin namespace-cleanup of standard C headers 2011-02-14 05:10:10 -05:00
Rich Felker 7fe308eb9f use a more-correct integer type, and silence 64-bit warnings as a bonus 2011-02-13 23:38:21 -05:00
Rich Felker 05ea04558f explicitly release crt/* to the public domain 2011-02-13 23:32:01 -05:00
Rich Felker a130d33cad fixed missing cast in the non-i386 version of shmat (preparation for ports) 2011-02-13 23:26:51 -05:00
Rich Felker f9d880d258 cleanup multibyte stuff to remove ugly casts, sanitize the ptr align casts 2011-02-13 23:08:18 -05:00
Rich Felker 2cdfb7ca26 cleaning up syscalls in preparation for x86_64 port
- hide all the legacy xxxxxx32 name cruft in syscall.h so the actual
source files can be clean and uniform across all archs.

- cleanup llseek/lseek and mmap2/mmap handling for 32/64 bit systems

- alternate implementation for nice if the target lacks nice syscall
2011-02-13 22:45:42 -05:00
Rich Felker 978ca01659 syscall cleanup for umount2 2011-02-13 21:29:36 -05:00
Rich Felker a5dec11306 use umount2 syscall for umount (new targets lack old 1-arg umount) 2011-02-13 21:28:43 -05:00
Rich Felker 1a9a2ff7b0 reorganize thread exit code, make pthread_exit call cancellation handlers (pt2) 2011-02-13 19:58:30 -05:00
Rich Felker 50e26f09eb reorganize thread exit code, make pthread_exit call cancellation handlers 2011-02-13 19:50:47 -05:00
Rich Felker f38c154be2 added missing O_NDELAY 2011-02-13 19:02:57 -05:00
Rich Felker dc3776d445 fix previous commit that broke sigreturn. looks like the asm is needed. 2011-02-13 19:01:43 -05:00
Rich Felker 6027201e5a ensure that musl is compiled as C99 code & XSI option is available in headers 2011-02-13 16:48:39 -05:00
Rich Felker e1d8d25a50 fix omission that kept sa_restorer from being used 2011-02-13 16:46:33 -05:00
Rich Felker 0bcbb53dc4 ensure that the compiler doesn't try to reorder around atomic ops 2011-02-12 00:26:24 -05:00
Rich Felker 0b44a0315b initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00