Age | Commit message (Collapse) | Author |
|
For x86 we have to copy only mask, handler and flags.
We haven't set SA_RESTORER bit in sa_flags anyway.
This patch fixes multiple test failures on x86.
Also we have to build uClibc with FP for x86 because
without FP NPTL and libgcc code cannot properly unwind
the stack during asynchronous cancellation of system calls.
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
As reported by Bering-uClibc project uClibc-ng for x86
generates a segfault on SMP machines when trying to run ntpd.
A small test case is here: https://gist.github.com/ddrown
Use a similar nop instruction as for x86_64 in the code.
Signed-off-by: KP.Kirchdoerfer <kapeka@bering-uclibc.de>
|
|
This matches a similar change made to glibc.
No functional changes here.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
No code changes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
We should not check for SIGCANCEL in __libc_sigaction because nptl calls this
function to setup this signal. Nptl provides it's own override for sigaction
that checks that the user cannot override signals nptl uses internally.
Linuxthreads does not use SIGCANCEL at all so this affects nptl only.
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
Run tested on i386.
|
|
"Bounds Checking Projects... This project has been abandoned"
for four years at least.
|
|
fix _NSIG for it.
better document what's going on in sigaction().
seems to not induce any actual code changes (sans mips).
|
|
|
|
In issue #5554 Michael wrote:
The implementation of sigaction on i386 for older kernels makes the system call using an inline asm element with two flaws:
1. The asm is not marked as depending on the kact structure or modifying the koact structure. Thus, GCC is free to assume these structures need not be kept consistent, allowing it to remove all initialization of kact.
2. The asm allows the signal number to be provided as a memory reference. But this allows GCC to provide a stack-relative operand, which will break because the assembler saves %ebx on the stack before using that operand.
1 didn't use to be a problem in practice because GCC 4.2.* didn't seize the optimization opportunity. GCC 4.3.2, however, optimizes out the "kact.sa_flags = act->sa_flags | SA_RESTORER;" line, so that the kernel sees garbage in sa_flags. This can result in the kernel seeing the SA_RESETHAND flag, causing erratic behaviour in signal dependent programs.
2 becomes an issue if "-fomit-frame-pointer" is provided. In uClibc-0.9.29 it isn't, uClibc-0.9.30-rc2 does use the flag by default.
|
|
|
|
in string.h and strings.h. This caught unguarded string ops in
libc/inet/ethers.c __ether_line_w() function.
I will wait for fallout reports for a week or so,
then continue converting more libc_hidden_proto's.
|
|
from i386 and x86_64.
|
|
to be weaks
|
|
|
|
|
|
libpthread as well
|
|
|
|
|
|
missing headers, other jump relocs removed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
implementation such that gdb can actually debug signal handlers. Gdb behaves
much better now, for example, on multi-threaded apps.
-Erik
|