summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/i386/bits
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>
* bits/kernel_stat.h: no need for _LIBC guard, the file is not installed on targetPeter S. Mazinger2011-03-091-4/+0
| | | | Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
* 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>
* libm: improve readability of math.h; expand comments and docsDenys Vlasenko2010-10-311-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* use uniform form of C99 keywordsBernhard Reutner-Fischer2010-06-241-4/+4
| | | | 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>
* Merge commit 'origin/master' into nptlAustin Foxley2010-04-061-108/+155
|\ | | | | | | | | | | | | | | Conflicts: libc/misc/utmp/utent.c libc/sysdeps/linux/i386/bits/syscalls.h 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>
* | Merge remote branch 'origin/master' into nptlAustin Foxley2009-11-281-103/+0
|\| | | | | | | Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
| * bits/mmap.h: unify ala linux asm-generic effortsMike Frysinger2009-11-231-103/+0
| | | | | | | | | | | | | | | | | | | | Most ports have the same exact mman bit defines, so let's unify things like the linux kernel has with the asm-generic efforts. A few ports are left behind as they are non-trivial to merge -- the arch maintainers can tackle it if they care. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* | i386 specific bit for nptlAustin Foxley2009-10-172-2/+2
|/ | | | | | | | | * RESET_PID support for clone.S * SAVE_PID, RESTORE_PID in vfork.S * fixup syscall assembly constraints to be a little less restrictive allows arbitrary variables to be used as the syscall nr Signed-off-by: Austin Foxley <austinf@cetoncorp.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>
* clean up O_CLOEXEC handlingMike Frysinger2009-10-071-2/+0
| | | | | | | Drop the "#ifndef O_CLOEXEC" cruft, enable O_CLOEXEC in most fcntl.h headers, and import __ASSUME_O_CLOEXEC from glibc. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* honour NO_LONG_DOUBLE_MATHBernhard Reutner-Fischer2009-08-301-0/+4
| | | | | | | | This fixes compilation errors on hosts that turn off long double support for C99 like powerpc32. Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
* enable nanosecond stat support for everyoneMike Frysinger2009-07-261-12/+6
| | | | | | | | | | | | | Fill out the stat structure so that the nanosecond resolution support is always available. There is a small code size increase for a few ports (three additional assignments in xstatconv), but otherwise everything should remain the same. While we're here, punt __old_kernel_stat from the few headers that still define it as it is unused in uClibc and causes compile errors after these nanosecond changes. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* byteswap: unify common definitionsMike Frysinger2009-07-211-99/+22
| | | | | | | | | The majority of the byteswap functions are the same across all arches, so setup a common header to provide definitions if they don't exist. This allows arches to override only the ones they actually want to implement with inline assembly. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* s/UCLIBC_INTERNAL/_LIBC/gDenys Vlasenko2009-07-211-1/+1
| | | | | | | | | | Undo my old mistake. I added UCLIBC_INTERNAL define, but later I realized _LIBC is doing exactly the same thing. This change converts all usages of UCLIBC_INTERNAL to _LIBC, removing all instances of UCLIBC_INTERNAL. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* 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>
* uClibc_arch_features: sync defines between portsMike Frysinger2009-07-031-0/+6
| | | | | | | Make sure each arch has the same complete list to make comparing between them easier. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* mknod: widen the parameters to match kernelDenis Vlasenko2009-03-031-4/+3
| | | | | | | | | ustat: same, + remove superfluous "conversion" which does nothing at best, loses high dev bits at worst i386/bits/kernel_stat.h: update to reflect reality (wider dev_t) h8300/bits/kernel_stat.h: same arm/bits/kernel_stat.h: cosmetics to match kernel header to the letter
* docs/probe_math_exception.c:Denis Vlasenko2009-02-111-3/+14
| | | | | | | | | | | | update example libc/sysdeps/linux/i386/bits/mathinline.h: improve __finite() macro, add __finitef macro (why they aren't always macros? why aren't they arch independent?) libm/math_private.h: much better comments on math_opt_barrier() and math_force_eval() libm/s_finite[f].c: improve out-of-line __finite[f]() too (one byte less, yay...)
* libm/ldouble_wrappers.c: add libm_hidden_def's to fix testsuite buildDenis Vlasenko2009-02-021-1/+1
| | | | | | | test/Rules.mak: don't pass target options to host build test/math/basic-test.c: fix test build error patching file test/unistd/errno.c: fix test build warning
* - fixup incomplete r24515 (fix redefinitions of posix_types for i386->x86_64 ↵Bernhard Reutner-Fischer2009-01-121-0/+1
| | | | with linux >= 2.6.28)
* - whitespace cleanup; no obj-code changesBernhard Reutner-Fischer2008-12-292-23/+23
|
* These defines needs to be considered after recent linux kernel combined i386 ↵Khem Raj2008-12-231-2/+6
| | | | and x86_64 into x86
* - Remove linux-specific prototypes if asked to.Bernhard Reutner-Fischer2008-11-151-2/+2
|
* - revert wrong r24049Bernhard Reutner-Fischer2008-11-151-2/+2
|
* - Remove linux-specific prototypes if asked to.Bernhard Reutner-Fischer2008-11-151-2/+2
|
* - add long double math wrappers (Ned Ludd)Bernhard Reutner-Fischer2008-10-031-4/+0
|
* - add sync_file_range()Bernhard Reutner-Fischer2008-09-161-4/+0
| | | | Tested successfully on i386..
* - some more asm keyword fixes (Yann E. MORIN)Bernhard Reutner-Fischer2008-08-061-15/+15
|
* - trim any trailing whitespaceBernhard Reutner-Fischer2008-07-232-4/+4
|
* - fix asm and volatile keywordsBernhard Reutner-Fischer2008-07-233-49/+49
|
* Rework smallint machinery so that it will reliably fail to compileDenis Vlasenko2008-06-011-4/+2
| | | | | | even if arch overrides smallint size. Makes it easier to spot bugs on such arches.
* Introduce and use small[u]int type. Changes in size:Denis Vlasenko2008-05-201-0/+8
| | | | | | | | | | | | | | - 79 0 28 107 6b libc/inet/rpc/create_xid.o + 76 0 25 101 65 libc/inet/rpc/create_xid.o - 126 0 4 130 82 libc/misc/assert/__assert.o + 123 0 1 124 7c libc/misc/assert/__assert.o - 648 4 24 676 2a4 libc/misc/internals/__uClibc_main.o + 645 4 21 670 29e libc/misc/internals/__uClibc_main.o - 230 0 4 234 ea libc/stdlib/abort.o + 216 0 1 217 d9 libc/stdlib/abort.o - 129 0 4 133 85 libc/termios/tcgetsid.o + 126 0 1 127 7f libc/termios/tcgetsid.o
* - add missing #endifBernhard Reutner-Fischer2008-05-031-1/+0
|
* - implement splice,vmsplice,tee for all archesBernhard Reutner-Fischer2008-05-031-1/+6
| | | | - synch F_LINUX_SPECIFIC_BASE related fcntls for all arches
* - add vmsplice, splice, tee (Timo Teräs)Bernhard Reutner-Fischer2008-05-021-10/+22
| | | | - pull bits/fcntl.h from glibc (Timo Teräs)
* - fixup asm. No object-code changesBernhard Reutner-Fischer2008-04-242-2/+2
|
* A patch from our Blackfin repository, originally from Jie Zhang. This fixesBernd Schmidt2008-01-171-3/+0
| | | | | | | | | | | | | a problem where the linker was trying to use the wrong symbol name for the init function. Define SYMBOL_PREFIX as _ in Rules.mak for h8300, bfin, i960, microblaze, and v850. Add -D__UCLIBC_UNDERSCORES__ in CFLAGS for targets which define SYMBOL_PREFIX as _. Remove defines and undefs from uClibc_arch_features.h of each target. Add $(SYMBOL_PREFIX) to __uClibc_init when passed by ld option -init.
* change NO_UNDERSCORES to just UNDERSCORES so as to be less confusing when ↵Mike Frysinger2008-01-081-1/+1
| | | | doing double negatives
* 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).
* - make sure to define _LIBC in libc-symbols.h before including anythingBernhard Reutner-Fischer2007-06-241-0/+2
| | | | | | else. - internal_function is only used inside libc, so do not define it in uClibc_arch_features.h on i386 if we are outside of libc.
* 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.
* Add a hack for compiling a 32 bit user space with a 64 bit kernel on x86_64Eric Andersen2007-02-281-1/+5
|