18 Commits

Author SHA1 Message Date
Rich Felker
6b87e941f9 fix completely bogus loop condition in getmntent_r
somehow this worked on my simple fstab, but horribly broke in general,
leading to use of uninitialized offset array and crashes.
2011-04-06 12:35:05 -04:00
Rich Felker
f209440bcf implement the adjtime and adjtimex functions (nonstandard) 2011-04-05 15:38:20 -04:00
Rich Felker
2c4e9e6e4b add getmntent_r interface (all of mntent is nonstandard anyway) 2011-04-05 14:11:14 -04:00
Rich Felker
5546f7a73a add pivot_root syscall wrapper 2011-04-05 12:32:10 -04:00
Rich Felker
39e48531ef support the nonstandard err.h interfaces
note that unlike the originals, these do not print the program
name/argv[0] because we have not saved it anywhere. this could be
changed in __libc_start_main if desired.
2011-04-05 11:16:49 -04:00
Rich Felker
aa398f56fa global cleanup to use the new syscall interface 2011-03-20 00:16:43 -04:00
Rich Felker
d00ff2950e overhaul syscall interface
this commit shuffles around the location of syscall definitions so
that we can make a syscall() library function with both SYS_* and
__NR_* style syscall names available to user applications, provides
the syscall() library function, and optimizes the code that performs
the actual inline syscalls in the library itself.

previously on i386 when built as PIC (shared library), syscalls were
incurring bus lock (lock prefix) overhead at entry and exit, due to
the way the ebx register was being loaded (xchg instruction with a
memory operand). now the xchg takes place between two registers.

further cleanup to arch/$(ARCH)/syscall.h is planned.
2011-03-19 18:51:42 -04:00
Rich Felker
07e9d63b8f depends on settimeofday which needs _GNU_SOURCE feature test 2011-03-01 11:57:19 -05:00
Rich Felker
13e8459232 workaround gcc bug 46926 by providing a dumb sincos implementation
note that this library itself is built with -ffreestanding so sincos.c
should not be miscompiled even if the gcc used to compile musl has
this bug.
2011-02-19 17:56:57 -05:00
Rich Felker
095a5ae6f2 add syscall wrappers for inotify 2011-02-19 02:52:29 -05:00
Rich Felker
cc2a8228fa cleanup cruft left from when kernel and user time_t disagreed 2011-02-19 02:28:42 -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
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
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
0b44a0315b initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00