Age | Commit message (Collapse) | Author |
|
|
|
On an i386 platform with no rt_sigsuspend syscall (ie: Linux 2.0), compilation will halt on libc/sysdeps/linux/common/sigsuspend.os with a cryptic error message:
"Error: non-constant expression in ".if" statement"
I've investigated and found that the cause is that a literal '0' is being passed into a block of complex assembler macrology that is only prepared to deal with register names - '%eax', etc.
In turn, that seems to be because of a typo in the GCC register constraints. The constraints for 2 and 3-argument syscalls includes a "C" constraint. To gcc, "C" means an SSE floating point constant -- an unlikely element in a syscall. I suspect the author meant to type "S" (%esi).
|
|
with gcc 4.2. Renaming to make it a bit uncommon name.
|
|
Import INTERNAL_SYSCALL macro for i386 from glibc.
Use above macro in posix_fadvise implementation if an arch defines it.
|
|
applications stop using _syscall#() and use syscall() instead. Cleanup
internal handling of syscall includes to use the correct header file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Prepare to kill the UNIFIED_SYSCALL option and instead have it be
a per arch thing that is either enabled or not for that arch.
-Erik
|
|
NOTE!!! This is run by "make -C libc/sysdeps/linux/$(TARGET_ARCH) headers"
in the main Makefile, but I only changed libc/sysdeps/linux/i386/Makefile
as I had no way of testing it for the other archs. Various arch maintainers,
please check and update the corresponding Makefile... or report bugs ;-)...
appropriately. You'll also want to "cvs del" syscall.h and add it to
a .cvsignore in $(ARCH)/bits.
Also added a define to uClibc_config.h, __UCLIBC_USE_UNIFIED_SYSCALL__, and
moved i386 unified syscall stuff out of common and into i386/bits/syscalls.h.
|
|
This will break the build for a bit.
-Erik
|
|
all arches till they add in an libc/sysdeps/linux/<arch>/bits/syscalls.h
file. Sorry about there, there was no other way...
-Erik
|