| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
|
|
|
|
|
|
| |
See GCC PR47577; TODO: Remove them.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
|
|
| |
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
|
|
|
| |
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
libc/misc/utmp/utent.c
libc/sysdeps/linux/i386/bits/syscalls.h
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
| |
| |
| |
| |
| |
| | |
so far
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| | |
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| | |
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|\|
| |
| |
| | |
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
| |
The common define has the same behavior, just formatted differently.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Declare common NCS (non-constant syscall) variants and convert the existing
ports over to this.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Make sure each arch has the same complete list to make comparing between
them easier.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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...)
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
with linux >= 2.6.28)
|
| |
|
|
|
|
| |
and x86_64 into x86
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Tested successfully on i386..
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
even if arch overrides smallint size. Makes it easier to spot bugs
on such arches.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
- synch F_LINUX_SPECIFIC_BASE related fcntls for all arches
|
|
|
|
| |
- pull bits/fcntl.h from glibc (Timo Teräs)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
doing double negatives
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
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.
|
| |
|