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