summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/i386/bits/syscalls.h
Commit message (Collapse)AuthorAgeFilesLines
* libc/x86: fix stack unwinding and backtrace informationTimo Teräs2011-12-231-75/+7
| | | | | | | | | | | | | | | | | | | | | | | When compiled without framepointer, the DWARF-2 CFI data is required for proper stack unwinding. This patch adds the CFI information to: * syscalls (so we get proper backtrace even for release builds) the ebx hack was removed as it would complicate the CFI generation * new thread stub function (so the backtrace is clean for user created threads) Also pads the signal return trampolines separate from other functions. If CFI info was found for signal return code (which seems to happen if it's located right next a valid function), it will not be recognized as signal trampoline (gcc unwinder and gdb check first CFI info, and only if it does not exists it compares the exact opcode sequence to see if we are at signal return code block). This fixes a real crash if thread is cancelled and the cancellation handler fails to detect the signal return frame. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
* i386: extend IMA guards to also cover LTOBernhard Reutner-Fischer2011-02-091-2/+5
| | | | | | See GCC PR47577; TODO: Remove them. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
* Fixes NPTL build on x86.Natanael Copa2010-04-091-1/+1
| | | | | Signed-off-by: Natanael Copa <natanael.copa@gmail.com> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
* i386/bits/syscalls.h: more compact, but stack-hungry syscall code. disabled ↵Denys Vlasenko2010-04-061-18/+78
| | | | | | so far Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* i386/bits/syscalls.h: explain _BITS_SYSCALLS_ASMDenys Vlasenko2010-04-061-45/+9
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* i386/bits/syscalls.h: generate better code using more restrictive asm ↵Denys Vlasenko2010-04-061-4/+11
| | | | | | | | | | | | | | | | | | | | | | constraints Example: time() doesn't push/pop two registers now, and is smaller: <__GI_time>: -57 push %edi -8b 7c 24 08 mov 0x8(%esp),%edi -53 push %ebx -89 fb mov %edi,%ebx +8b 4c 24 04 mov 0x4(%esp),%ecx +87 cb xchg %ecx,%ebx b8 0d 00 00 00 mov $0xd,%eax cd 80 int $0x80 -5b pop %ebx -5f pop %edi +87 cb xchg %ecx,%ebx c3 ret Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* i386/bits/syscalls.h: explain how it works. no code changesDenys Vlasenko2010-04-061-100/+116
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* i386: use common INTERNAL_SYSCALL_ERROR_PMike Frysinger2009-10-151-3/+0
| | | | | | The common define has the same behavior, just formatted differently. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* syscall: unify part 2: NCS varietyMike Frysinger2009-07-091-3/+3
| | | | | | | Declare common NCS (non-constant syscall) variants and convert the existing ports over to this. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* syscall: unify common syscall definesMike Frysinger2009-07-081-66/+0
| | | | | | | | | Unify all the common syscall defines in syscalls-common.h and scrub all the duplicated code from relevant ports. This should also make converting existing ports to INLINE_SYSCALL() much easier as they don't have to get lost in all the unrelated noise, as well as creating new ports. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* - fixup asm. No object-code changesBernhard Reutner-Fischer2008-04-241-1/+1
|
* michael_d writes in #1874: Mike Frysinger2008-01-051-2/+2
| | | | | | | | | 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).
* Using local variable 'result' caused problems with lseek64 syscall failing ↵Khem Raj2007-03-131-10/+9
| | | | with gcc 4.2. Renaming to make it a bit uncommon name.
* Add posix_fadvise posix_fadvise64 for arm.Khem Raj2007-03-061-15/+27
| | | | | Import INTERNAL_SYSCALL macro for i386 from glibc. Use above macro in posix_fadvise implementation if an arch defines it.
* Take Mike Frysinger's comments into account -- make certain that userEric Andersen2006-12-081-5/+0
| | | | | applications stop using _syscall#() and use syscall() instead. Cleanup internal handling of syscall includes to use the correct header file.
* sync with psm: update errno handling to be the same on all archesMike Frysinger2006-08-231-2/+4
|
* prune trailing whitespaceEric Andersen2006-04-131-2/+2
|
* Block the combo DOMULTI/SUPPORT_LD_DEBUGPeter S. Mazinger2006-02-151-1/+41
|
* Make i386 build w/ -std=c99 (almost)Peter S. Mazinger2006-01-231-2/+2
|
* implement syscall6Mike Frysinger2006-01-051-0/+12
|
* Undo 12115, it fails on building libc/sysdeps/linux/commonPeter S. Mazinger2005-11-021-5/+4
|
* Cleaner i386/syscalls.h patch to handle macro redefines proposed by jockePeter S. Mazinger2005-11-021-4/+4
|
* Remove __set_errno proposed by jockePeter S. Mazinger2005-11-021-4/+2
|
* Allow sources using syscalls to be IMA compiled on x86Peter S. Mazinger2005-11-021-1/+4
|
* Change <bits/syscall.h> to <bits/sysnum.h>.Miles Bader2002-09-051-2/+2
|
* Rework syscall handling. Rewrite syscall handlers for x86 and ARM.Eric Andersen2002-07-221-156/+109
| | | | | | 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
* Added a script to create bits/syscall.h for each arch.Manuel Novoa III2001-06-281-0/+39
| | | | | | | | | | | 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.
* Step one in a process to ween ourselves off of using asm/unistd.h.Eric Andersen2001-06-271-1/+79
| | | | | This will break the build for a bit. -Erik
* This adds in support for PIC on x86. Unfortunately, this will breakEric Andersen2001-06-231-0/+81
all arches till they add in an libc/sysdeps/linux/<arch>/bits/syscalls.h file. Sorry about there, there was no other way... -Erik