OSDN Git Service
Vineet Gupta [Fri, 13 Dec 2013 09:19:20 +0000 (14:49 +0530)]
elf: Add ARC Magic and Relocations
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Fri, 20 Dec 2013 15:24:12 +0000 (16:24 +0100)]
ldso: ARC: tweak whitespace some more
Use spaces instead of tabs in the table to accomodate different tab
settings.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Vineet Gupta [Fri, 20 Dec 2013 14:14:47 +0000 (19:44 +0530)]
ldso: ARC whitespace tweaks
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Kenneth Soerensen [Fri, 20 Dec 2013 14:53:01 +0000 (15:53 +0100)]
inet: Fix threaded res_init
In a multi-threaded application where res_init() was called either
directly or implicitly, getaddrinfo() and others failed to add the
DNS search domain to hostnames.
This problem made it not possible to look up a hostname without its
domain appended.
The problem is caused by res_sync_func() overwriting the configuration
read by __open_nameservers() immediately after it is read.
The suggested solutin is to disable res_sync_func() while reading name
server configuration in res_init().
Signed-off-by: Kenneth Soerensen <kenneth.sorensen@spectralink.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Thu, 7 Nov 2013 12:38:18 +0000 (14:38 +0200)]
librt: fix mq_timed{send,receive} return instructions
Not all architectures use 'ret' as function return instruction. For example,
xtensa usually uses 'retw'. Use the ret_ERRVAL arch dependant macro instead.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Thu, 7 Nov 2013 12:38:17 +0000 (14:38 +0200)]
libc/sysdeps: commonize ret_ERRVAL
* Add a common ret_ERRVAL definition
* Remove ret_ERRVAL from architectures using the common 'ret'
* Add 'undef' to architectures that need a different return instruction
* Add '#include <common/sysdep.h>' to cris and ia64 that were missing it
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Vineet Gupta [Fri, 13 Dec 2013 09:19:26 +0000 (14:49 +0530)]
ARC defconfigs
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Vineet Gupta [Fri, 13 Dec 2013 09:19:25 +0000 (14:49 +0530)]
ARC port to uClibc
For this port, I would like to give due credit to:
- Folks from Codito technologies (Sameer, Amit, Kanika, Ramana,...)
who did the very first port
- ARC UK from 2007-2009 (Joern, Irfan, Khurram, Phil...
- Late Brendan Kehoe (may he RIP)
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Joern Rennecke [Fri, 13 Dec 2013 09:19:24 +0000 (14:49 +0530)]
string: Add ARC support
Signed-off-by: Joern Rennecke <joern.rennecke@embecosm.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Vineet Gupta [Fri, 13 Dec 2013 09:19:23 +0000 (14:49 +0530)]
LT.old: Add ARC support
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Vineet Gupta [Fri, 13 Dec 2013 09:19:22 +0000 (14:49 +0530)]
ldso: Add ARC support
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Vineet Gupta [Fri, 13 Dec 2013 09:19:21 +0000 (14:49 +0530)]
ldd: Add ARC support
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Waldemar Brodkorb [Wed, 27 Nov 2013 08:55:51 +0000 (09:55 +0100)]
Fix for SIGBUS error on MIPS64 with N64 ABI
When accessing errno, a per thread variable, from _stdio_init
a SIGBUS error happens. This change fixes the wrong relocation
and debug output.
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Fri, 20 Dec 2013 13:05:12 +0000 (14:05 +0100)]
NPTL: fork: relief register pressure on arm thumb1
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Fri, 20 Dec 2013 13:00:26 +0000 (14:00 +0100)]
ldso: use unlikely macro
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Fri, 20 Dec 2013 12:59:03 +0000 (13:59 +0100)]
buildsys: Fix error on config clean in realclean
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Fri, 20 Dec 2013 12:21:20 +0000 (13:21 +0100)]
buildsys: add TODO reminder
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Tue, 19 Nov 2013 11:43:49 +0000 (12:43 +0100)]
buildsys: update unifdef
sync up to
55501a61dd257e941d53f175350ee52fc6ff2866
(2.9 + refactor keyword and symbol matching)
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Wed, 13 Nov 2013 11:31:00 +0000 (12:31 +0100)]
buildsys: check LDFLAGS through driver
We run the linker through the compiler-driver, so we have to check
linker flags through the driver, too.
Otherwise we might check $LD's flags while we will run $CC's linker
and those might be different beasts.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Tue, 12 Nov 2013 16:29:48 +0000 (17:29 +0100)]
ldso: silence warnings in debug code
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Kenneth Soerensen [Wed, 10 Apr 2013 14:52:52 +0000 (16:52 +0200)]
Make res_init() thread safe.
res_init() was not atomic, which could give undesired behaviour. Now
res_init() is completely locked under one lock and the locking is
removed from __res_vinit().
Signed-off-by: Kenneth Soerensen <kenneth.sorensen@spectralink.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sørensen, Kenneth [Thu, 11 Apr 2013 06:32:54 +0000 (06:32 +0000)]
Fix threaded use of res_ functions.
Commit
aab4df0fb51660300559f5f29290709db2f7bfee says that the line with
after res_init() function. Commit
7f74de5d4d6d10baafab4b37bb3d472f5c5f0e8c moves the res_init()
function below the line with #undef _res.
This commit moves res_init() back above #undef _res.
Signed-off-by: Kenneth Soerensen <kenneth.sorensen@spectralink.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Mon, 11 Nov 2013 10:18:30 +0000 (11:18 +0100)]
buildsys: document savedefconfig in help
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Mon, 11 Nov 2013 10:15:17 +0000 (11:15 +0100)]
buildsys: on realclean, rm include/{config,generated}
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Tue, 5 Nov 2013 20:37:00 +0000 (21:37 +0100)]
buildsys: rm PT startfiles on realclean
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Tue, 5 Nov 2013 19:57:23 +0000 (20:57 +0100)]
time.c: make ll_tzname* static again
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Fri, 18 Oct 2013 05:51:56 +0000 (08:51 +0300)]
prctl: fix system call wrapper
The argument names used in the prctl wrapper collide with the internal
variable names in syscall wrapper macros on some architecture. This
currently breaks xtensa. grep for '\b_a[0-9]' indicates that metag and
microblaze might also be affected.
Prefix argument names with '_prctl' to avoid collision.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Wed, 2 Oct 2013 07:08:29 +0000 (10:08 +0300)]
test: tls: fix build with newer binutils
Fix the following build failures:
ld: tst-tls10.o: undefined reference to symbol 'f2a'
ld: tst-tls12.o: undefined reference to symbol 'a1'
binutils ld defaults to --no-copy-dt-needed-entries since version 2.22. Add
library dependencies explicitly.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Thu, 22 Aug 2013 08:42:38 +0000 (11:42 +0300)]
ldso: remove duplicate function declarations
Commit
e3dec33ba (powerpc: Add TLS and NPTL support) introduced a duplicate of
_dl_add_to_slotinfo and _dl_initial_error_catch_tsd declarations.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Mon, 26 Aug 2013 10:55:11 +0000 (13:55 +0300)]
test: inet: fix build when res_close support is disabled
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Wed, 28 Aug 2013 08:15:21 +0000 (11:15 +0300)]
libdl: fix unused variable warning
The following warning introduced with commit
231e4a9b4 (libdl: fix dlopen
implementation from statically linked application):
ldso/libdl/libdl.c: In function 'do_dlopen':
ldso/libdl/libdl.c:311:23: warning: unused variable 'ls' [-Wunused-variable]
Cc: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Wed, 28 Aug 2013 07:54:32 +0000 (10:54 +0300)]
misc: fix nm 'No such file' error
Reset CSRC-y to prevent pollution from libc/misc/glob/Makefile.in, and fix the
following error messages when UCLIBC_HAS_OBSTACK is disabled:
nm: 'libc/misc/gnu/glob-susv3.os': No such file
nm: 'libc/misc/gnu/glob64-susv3.os': No such file
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Tue, 27 Aug 2013 18:20:17 +0000 (21:20 +0300)]
ldso: fix unused variable warning
This fixes the following warning when SUPPORT_LD_DEBUG_EARLY is not enabled:
ldso/ldso/ldso.c: In function '_dl_get_ready_to_run':
ldso/ldso/ldso.c:754:16: warning: unused variable 'tmp' [-Wunused-variable]
This was introduced with commit
94cc6edb (ldso: Rework global scope handling
and symbol lookup mechanism).
Cc: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Khem Raj [Tue, 24 Sep 2013 00:58:11 +0000 (17:58 -0700)]
add posix_fadvise() for arm
arm call to posix_fadvise simply calls posix_fadvise64
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Markos Chandras [Wed, 14 Aug 2013 13:57:39 +0000 (14:57 +0100)]
libc/metag: add __kernel_long_t and __kernel_ulong_t
Add __kernel_long_t and __kernel_ulong_t types for Meta. The rest of
the architectures have been fixed in:
6a76edddaa62ff06f178143b582167734cb55c18
"libc/sysdeps: add __kernel_long and __kernel_ulong"
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sun, 3 Nov 2013 22:27:46 +0000 (23:27 +0100)]
pull kconfig from linux-3.11
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Vineet Gupta [Fri, 4 Oct 2013 10:05:01 +0000 (15:35 +0530)]
Fix weak/strong attribute of __errno_location and it's __GI alias
A simple statically linked hello world program was segfaulting for ARC
in linuxthreads.old configuration (although the root casue applies
cross-arch for NPTL as well as linuxthreads.old as described)
The crash was due to branch to NULL in _stdio_init
0001026c <_stdio_init>:
1026c: push_s blink
1026e: st.a r13,[sp,-8]
10272: bl.d 0 --> supposed call to __errno_location
The call was NOT getting patched to libc internal only alias
__GI___errno_location, because it was weak while it's exported cousin,
__errno_location was strong/normal.
arc-linux-uclibc-nm libc/misc/internals/__errno_location.os
00000000 W __GI___errno_location
00000000 T __errno_location
This is exactly opposite to what is expected.
Quoting Peter S. Mazinger, commit
87936cd013041 "errno and *_init cleanup"
| The rule adopted:
| for enabled threads we make in libc the __GI_x() variants strong, x() weak
| and (should) provide another strong x() in libpthread.
| If threads are disabled, even the __GI_x() variants are weak.
With the fix, we see the right settings as below
00000000 T __GI___errno_location
00000000 W __errno_location
Note that problem won't show up in a static busybox build as it references
errno and that seems to elide the issue.
I can confirm the same/more issues with latest ARM buildroot builds w/o
my fix.
(1). linuxthreads.old (broken just like ARC)
arm-linux-nm uclibc-snapshot/libc/misc/internals/__errno_location.os
00000000 W __GI___errno_location
00000000 T __errno_location
But presumably the issue there is NOT catestrophic because ARM linker is
likely smarter and patches a NOP instead of NULL branch.
00008388 <_stdio_init>:
8388:
e92d4038 push {r3, r4, r5, lr}
838c:
e320f000 nop {0}
(2) NPTL build (exported version is not weak)
00000000 T __GI___errno_location
00000000 T __errno_location
This causes a static link with libpthread and test program
referencing errno to fail to link.
#include <errno.h>
int main(void)
{
printf("%d\n", errno);
}
arm-linux-gcc -static -pthread -o tst tst.o
arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libc.a(__errno_location.os):
In function `__errno_location': __errno_location.c:(.text+0x0):
multiple definition of `__errno_location'
arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a
(errno_location.os):errno_location.c:(.text+0x0): first defined here
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Wed, 2 Oct 2013 13:14:55 +0000 (16:14 +0300)]
xtensa: fix atomic_decrement_if_positive() return value
atomic_decrement_if_positive() returns the old value of &mem, not the
(sometimes undefined) value of __tmp.
Fixes the uClibc nptl/tst-sem3 test.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Chris Zankel <chris@zankel.net>
Baruch Siach [Thu, 12 Sep 2013 09:32:53 +0000 (12:32 +0300)]
xtensa: fix layout of struct sigcontext to match the kernel
Current code breaks libgcc unwind.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Chris Zankel <chris@zankel.net>
Denys Vlasenko [Mon, 7 Oct 2013 14:42:26 +0000 (16:42 +0200)]
pmap_getport: use TCP to talk to portmapper if protocol == IPPROTO_TCP.
Before the patch, the query itself was sent via UDP
(the query contained correct protocol ID).
The fix is taken from glibc.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Anthony G. Basile [Sun, 28 Jul 2013 13:08:34 +0000 (09:08 -0400)]
libc: add isfdtype()
isfdtype(int fd, int fdtype) check whether a file descriptor fd is
of type fdtype, where the types are defined in stat(2). It is
supported in glibc and BSD, and used by utilities such as acpid.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Baruch Siach [Mon, 8 Jul 2013 08:40:17 +0000 (11:40 +0300)]
malloc: enable assert() when malloc debugging
UCLIBC_MALLOC_DEBUGGING is useless without assert().
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Mischa Jonker [Tue, 23 Jul 2013 16:32:07 +0000 (18:32 +0200)]
libc/sysdeps: Fix common-generic stat.h for BE part 2
Previous patch only fixed the build. This patch fixes the behavior at
run-time as well.
It fixes "Value too large for defined data type" messages caused by
fstat syscall wrapper returning -EOVERFLOW.
Signed-off-by: Mischa Jonker <Mischa.Jonker@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Gustavo Zacarias [Wed, 24 Jul 2013 15:30:35 +0000 (12:30 -0300)]
Rules.mak: Fix setting arch native bit
fix breakage from
603af30d
Removing the whitespace from findstring for 64 bit architectures has
bad consequences since powerpc would be a match in powerpc64 and sparc
would also be a match in sparc64.
That doesn't make them 64 bits in reality causing general breakage.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Fri, 19 Jul 2013 18:53:57 +0000 (20:53 +0200)]
test commit
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Vanya Sergeev [Sat, 8 Jun 2013 22:49:45 +0000 (15:49 -0700)]
inet: fix unsafe access to _res.options in res_mkquery()
res_mkquery() takes out __resolv_lock to copy _res.options to function local
_res_options on line 4204, but later unsafely accesses _res.options without a
lock, instead of its local copy _res_options, on line 4221. Looks like a
period / underscore typo.
Signed-off-by: Vanya Sergeev <vsergeev@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Markos Chandras [Thu, 11 Jul 2013 16:59:16 +0000 (17:59 +0100)]
Rules.mak: MIPS64: Select correct interpreter
gcc (eg 4.7.3) hardcodes the MIPS64 interpreters like this:
(see gcc/config/linux.h and gcc/config/mips/linux64.h)
o32: UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
n32: UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
n64: UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
The existing check for MIPS64 in uClibc is wrong because it does
not respect the selected ABI
We fix this by explicitely checking the selected ABI instead of the
selected MIPS variant.
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Denys Vlasenko [Thu, 18 Jul 2013 19:57:06 +0000 (21:57 +0200)]
bits/waitstatus.h: correctly interpret status 0x007f on MIPS
On other architectures exit status of 0x007f is not possible,
they don't have signal 127.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Luis Machado [Thu, 4 Jul 2013 09:48:13 +0000 (11:48 +0200)]
C6X: Remove DSBT in favour of FDPIC
Sync up with the changes from C6X entering the kernel.
Signed-off-by: Luis Machado <lgustavo@codesourcery.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Anthony G. Basile [Wed, 3 Jul 2013 21:59:32 +0000 (17:59 -0400)]
libc/sysdeps/linux/common/sendfile.c: fix sendfile64 visibility
Commit
a83ea57a50 introduces code for falling back on sendfile64
when the sendfile syscall is not available. However, as written,
that code leads to sendfile64 being globally hidden in situations
where __NR_sendfile and __USE_LARGEFILE64 are defined. In this case,
the flow executes strong_alias_untyped(sendfile,sendfile64) in
libc/sysdeps/linux/common/sendfile.c and libc_hidden_proto(sendfile64)
in include/sys/sendfile.h, but nowhere does it do libc_hidden_def(sendfile64).
This patch adds the needed libc_hidden_def(sendfile64).
This breaks, for example, xfsprogs on x86_64. Reported by mardok4
in IRC.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bartosz Golaszewski [Tue, 18 Jun 2013 21:02:20 +0000 (23:02 +0200)]
insque: fix segfault on (prev == NULL)
Since version 2.5 glibc allows prev to be a NULL pointer in insque, whereas
uClibc segfaults in this case. This fixes the issue and makes insque
initialize q_forw and q_back with NULLs if prev == NULL.
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Filippo ARCIDIACONO [Mon, 1 Jul 2013 13:55:26 +0000 (15:55 +0200)]
libpthread: pthread_exit in static app. segfaults
Static applications that call pthread_exit on the main thread segfault.
This is because after a thread terminates __uClibc_main decrements
__nptl_nthreads which is only defined in pthread_create.
Therefore the right solution is to add a requirement to pthread_create
from pthread_exit.
This patch has been backported from glibc tree:
http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=
e1f0b2cfa14b058ab033431b70428ccda8ec6ed0
For further detail see also glibc bug at:
http://sourceware.org/bugzilla/show_bug.cgi?id=12310
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Cc: Vladimir Nikulichev <v.nikulichev@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Khem Raj [Tue, 26 Mar 2013 02:34:39 +0000 (19:34 -0700)]
i386/sysdep.h: Remove STABS_* macros
uclibc is compiled with elf/dwarf and secondly HAVE_CPP_ASM_DEBUGINFO
is not defined so we generate bogus .stab sections needlessly
Some of post processing tools get confused when they see both
dwarf and stab sections
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Denys Vlasenko [Fri, 28 Jun 2013 19:59:54 +0000 (21:59 +0200)]
MIPS: set _NSIG to 128, not 129. This matches glibc.
Prompted by lkml discussion of a MIPS bug where sending
signal 128 was found to be able to crash the machine :/
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bernhard Reutner-Fischer [Fri, 28 Jun 2013 13:14:46 +0000 (15:14 +0200)]
libc: Fix _obstack_newchunk public symbol vis
975bca165c3e10e74c05c0384fd58f45a7025a3c avoided relocations to
_obstack_newchunk used by obstack_vprintf but missed to enable the
corresponding public symbol which is used by the obstack macros.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Fri, 14 Jun 2013 12:27:06 +0000 (14:27 +0200)]
libc: hide obstack relocations
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Anthony G. Basile [Thu, 13 Jun 2013 14:54:39 +0000 (10:54 -0400)]
libc/misc/gnu/obprintf.c: implement obstack_printf and obstack_vprintf
This adds a straight forward implementation for obstack_printf and
obstack_vprintf on uClibc's already existing obstack_grow and
vasprintf. It does not attempt to port over glibc's implementation
in terms of _IO_* structs and functions.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Anthony G. Basile [Thu, 13 Jun 2013 14:54:25 +0000 (10:54 -0400)]
config: UCLIBC_HAS_OBSTACK to optionally enable obstack support
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Hiroaki KAWAI [Fri, 19 Apr 2013 01:09:35 +0000 (10:09 +0900)]
eventfd.h: Use new "bits/" scheme for arch-specific flags
As in timerfd.h, eventfd.h needs arch-specific definition files.
alpha, mips and sparc needs separate file, all the other arch
will use common definition.
This problem is already fixed in glibc.
Also sanitize and provide bits for hppa.
Make sure not to install the new bits/eventfd unless eventfd support is
enabled.
Signed-off-by: Hiroaki KAWAI <kawai@stratosphere.co.jp>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Gregory Fong [Mon, 3 Jun 2013 20:32:55 +0000 (13:32 -0700)]
ldso/libdl: Also include dl-tls.h for for !SHARED.
On MIPS, several relocations that were original only resolved by the
dynamic linker were reused as static relocations. Consequently the
macros TLS_DTPREL_VALUE and TLS_TPREL_VALUE defined in
libpthread/nptl/sysdeps/mips/dl-tls.h need to be available even for
!SHARED.
Relevant: http://www.linux-mips.org/wiki/NPTL#History
Original patch by Vincent Wen <wenvincent@gmail.com>:
http://lists.uclibc.org/pipermail/uclibc/2013-April/047707.html
When build statically linked applications for MIPS platform,
sometimes the linker fails with following errors:
undefined reference to TLS_DTPREL_VALUE
undefined reference to TLS_TPREL_VALUE
The include of dl-tls.h is only in code guarded by SHARED,
Removing the SHARED compilation option to cover static link too.
Signed-off-by: Vincent Wen <wenvincent90@gmail.com>
Signed-off-by: Gregory Fong <gregory.0xf0@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Vineet Gupta [Thu, 30 May 2013 08:57:33 +0000 (14:27 +0530)]
Reinstate hidden protos for config_{open,close,read}()
Partially reverts "parser_config.[ch]: remove duplicated hidden functions"
There's a namespace collision for config_{open,close,read} functions
between uClibc and Busybox. Callers in uClibc and busybox need to call
their local variants. In case of static linking, both the variants need
to be pulled in the final executable.
Turns out that the existing hidden attribute is not enough for static
linked Busybox where the linker treats these symbols as duplicate and
pulls in only the local (Busybox's own) variants in the final link.
This obviously causes the uClibc callers to crap out at runtime.
This can be fixed by restoring the libc_hidden_proto() annotation
which causes the libc variants to be aliased with __GI_ prefix thus
making both the symbols distinct from linker's perspective.
This issue was found with ARC gcc 4.8 + uClibc trunk.
I can confirm the same thing with ARM uClibc buildroot build (when
switching to uClibc daily snapshot).
All the credit for debugging the issue goes to Anton,Joern and Jeremy -
I simply found the cure :-)
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Anton Kolesov <akolesov@synopsys.com>
Cc: Jeremy Bennett <jeremy.bennett@embecosm.com>
Cc: Joern Rennecke <joern.rennecke@embecosm.com>
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Cc: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Carmelo Amoroso [Mon, 27 May 2013 14:30:36 +0000 (16:30 +0200)]
libc: elf: explicitly include uClibc_page.h to make PAGE_SIZE visible
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Filippo Arcidiacono [Mon, 13 May 2013 12:06:11 +0000 (14:06 +0200)]
libubacktrace: fix build due to some typos
Commit
71c10c484e7dc113396cccb7e503befb759c6346 broke libubactrace build
due to some typos, so that backtrace.o[sS] were not built.
This definetively fixes this problem.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Mike Frysinger [Sun, 19 May 2013 05:09:07 +0000 (01:09 -0400)]
i386: punt all config options that just control -march
You can set these yourself in your CFLAGS, and our list is incomplete
and pointless (we agreed some time ago to stop doing this).
We keep around CONFIG_[3456]86 because it is used to select between
different optimized subdirs of handcoded assembly.
Also take this opportunity to up the default to i686. If you're using
an older cpu, then you can handle changing this yourself.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Filippo Arcidiacono [Thu, 9 May 2013 09:42:23 +0000 (11:42 +0200)]
libubacktrace: fix backtrace for statically linked application
libgcc_s.so's unwinder could not access unwind tables of statically
linked binaries, so we really want to use _Unwind_* stuff from
libgcc_eh.a.
It required to build backtrace.c differentiating between shared and
static case.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Filippo Arcidiacono [Thu, 9 May 2013 07:04:20 +0000 (09:04 +0200)]
libdl: fix dlopen implementation from statically linked application
Calling dlopen from statically linked application is actually broken,
because _dl_find_hash enters into an infinite loop when trying to
resolve symbols. In this case it doesn't need to extend the global
scope, it is readyto be used as it is, because _dl_loaded_modules already points
to the dlopened library.
The patch also fixesi a typo in __LDSO_LD_LIBRARY_PATH__ macro, that was
preventing to get the actual value of the LD_LIBRARY_PATH.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Filippo ARCIDIACONO [Fri, 14 Dec 2012 10:40:05 +0000 (11:40 +0100)]
libc: deal with aux vect inside __uClibc_main only if !SHARED
It's not safe to use the aux vect inside __uClibc_main if we are running
with shared libraries, because it could have been already modified.
For example, if some constructor plays with environment variables by
using unsetenv, the modifications done into the stack to unset an
environment variable, have impacts on the aux vect due to the extra NULL
entries added.
Due to this, __uClibc_main is not able to detect where the aux vect
starts, so all the entries that are used by __uClibc_main (AT_UID,
AT_EUID, AT_GID, AT_EGID, AT_PAGESZ and possibly other arch specific)
are impacted.
Same side effect on the aux vect is caused by the ld.so when running a
SUID program with some of the unsecure environment variables set, that
will be unset by the ld.so itself.
In order to fix this issue, it needs to handle aux vect entries into
__uClibc_main only if SHARED is not defined.
In SHARED case, libc refers to __dl_secure and _dl_pagesize as initialised
by the ld.so where the aux vext is still untouched.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Reviewed-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Mike Frysinger [Sun, 7 Apr 2013 06:19:53 +0000 (02:19 -0400)]
linux: pread/write: fix 64bit handling
The syscall on 64bit ports takes 4 args as there is no need to split
up the value into two args. Add support for that to the common code.
Once we fix that, the mips code can now leverage it for its 64bit and
32bit needs. However, we can't just drop it entirely yet because its
n32 ABI needs special handling to treat it like a 64bit port. This
does change the existing behavior which treats the n32 like a 32bit
port, but we want to do this.
In the future, we'll probably have to introduce a define for this as
it currently affects x86_64/x32 and mips/n32.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Bernhard Reutner-Fischer [Wed, 3 Apr 2013 22:31:03 +0000 (00:31 +0200)]
buildsys: fix realclean
For anything but (toplevel) clean, CLEAN_%, we need .config
Otherwise realclean would leave stuff behind that was not intended to
survive.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Wed, 3 Apr 2013 22:25:06 +0000 (00:25 +0200)]
add UCLIBC_SUSV2_LEGACY to hide valloc
valloc was marked as LEGACY in SUSv2, removed from SUSv3 and later.
TODO: Remove this (point people to memalign and it's successors?).
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Wed, 3 Apr 2013 22:12:25 +0000 (00:12 +0200)]
relinfo.pl: use correct interpreter
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Wed, 3 Apr 2013 22:06:29 +0000 (00:06 +0200)]
relinfo.pl: silence warning
$* is no longer supported at extra/scripts/relinfo.pl line 2.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Wed, 3 Apr 2013 20:54:00 +0000 (22:54 +0200)]
stdlib: avoid relocation
valloc uses memalign
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Mike Frysinger [Mon, 1 Apr 2013 09:53:38 +0000 (05:53 -0400)]
linux: pread/write: convert to SYSCALL_ALIGN_64BIT
The pread64/write64 syscalls have the 64bit register align issue for
all arches. Use this new define so we can merge the powerc/xtensa
versions back into the common code.
SuperH is funky and also allows us to do this.
We should be able to merge the mips version too, but that'll require
someone to take a closer look as the current stuff doesn't look quite
right.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Mon, 1 Apr 2013 09:40:42 +0000 (05:40 -0400)]
linux: readahead: convert to SYSCALL_ALIGN_64BIT
The readahead syscall has the 64bit register align issue for all
arches. Only mips was handling this though.
Clean up the common readahead.c to use the SYSCALL_ALIGN_64BIT
define so that we can throw away the mips version and make this
work correctly on arm/ppc/xtensa.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Mon, 1 Apr 2013 09:29:23 +0000 (05:29 -0400)]
linux: posix_fadvise: use new SYSCALL_ALIGN_64BIT
Now that we have a new SYSCALL_ALIGN_64BIT define for tracking the
64bit register shift behavior, use it. This allows us to delete
duplicated arm/xtensa files, as well as drop a few arch ifdefs from
common code.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Mon, 1 Apr 2013 09:09:17 +0000 (05:09 -0400)]
linux: use OFF64_HI_LO rather than __LONG_LONG_PAIR
This macro takes care of the shift/mask split for us, so no need
to open code this ourselves and then use __LONG_LONG_PAIR.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Mon, 1 Apr 2013 08:49:24 +0000 (04:49 -0400)]
mips: only define SYSCALL_ALIGN_64BIT for O32 ABIs
The 64bit register alignment issue only affects the O32 ABI, so wrap
the define accordingly. We don't want this being used for N32 ABIs.
This doesn't directly affect the N64 ABI since these files wouldn't
even be compiled for those targets (no need for the 32bit/64bit shim).
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Mon, 1 Apr 2013 08:47:08 +0000 (04:47 -0400)]
libc: rename TRUNCATE64_HAS_4_ARGS to SYSCALL_ALIGN_64BIT
The reason truncate64 takes 4 args on some arches is that their ABI
requires 64bit values to be aligned on register pair boundaries.
Since this alignment affects more than just truncate64, rename the
define to properly document its purpose. This also allows us to
expand it to the other impacted syscalls (which will be done in a
follow up commit).
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Bernhard Reutner-Fischer [Fri, 29 Mar 2013 12:34:54 +0000 (13:34 +0100)]
Revert "_scanf.c: Implement 'm' modifier for 'c' and '[' conversions."
This reverts commit
e567c399ff86d007d8c4586f0dd5e0ca61e283ca.
since it breaks badly (e.g. busybox netstat)
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Mirko Vogt [Fri, 21 Sep 2012 15:29:15 +0000 (17:29 +0200)]
_vfprintf.c: use 'fputws_unlocked(S, F)' instead of 'fputws(S, F)'
This eliminates a source of reproduceable freezes
Signed-off-by: Mirko Vogt <dev@nanl.de>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Felix Fietkau [Fri, 21 Sep 2012 15:29:12 +0000 (17:29 +0200)]
inet: fix getting the nameserver from _res state after res_init.
Fixes displaying the nameserver in busybox nslookup.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Mischa Jonker [Fri, 22 Mar 2013 16:30:47 +0000 (17:30 +0100)]
libc: Fix common-generic stat.h for BE
Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Nathan Sidwell [Fri, 22 Mar 2013 16:48:51 +0000 (17:48 +0100)]
Fix some fragileness in dlopen/do_dlopen wrapper & worker pair.
do_dlopen contains __builtin_return_address to determine from
whence it was called, and uses that to determine which dynamic
object's data it should use to start the search. (In the bug I was
tracking, this related to whether the application's RPATH was used or
not.) For that to work, it has to have been inlined into the wrapper
function.
As it happens, it wasn't being inlined. That's an unfortunate compiler
behaviour, but it isn't wrong and shouldn't have caused dlopen to fail.
This patch changes things so the wrapper function determines the
return address, and passes it to the worker. If the worker's inlined,
the generated code should be exactly the same as before.
Signed-off-by: Nathan Sidwell <nathan@codesourcery.com>
Signed-off-by: Bernd Schmidt <bernds@codesourcery.com>
Nathan Sidwell [Fri, 22 Mar 2013 16:46:52 +0000 (17:46 +0100)]
Fix a problem with scanning wide chars.
We found that the testcase
int
main (void)
{
wchar_t s[10];
memset (s, 0, sizeof (s));
int r = sscanf ("s", "%ls", s);
printf ("%d\n", r);
printf ("%ls\n", s);
return 0;
}
printed
0
<blankline>
rather than the expected
1
s
The problem was the enum in _scanf.c, which has had a 'CONV_m' value
inserted. The attached patch fixes the problem in __psfs_parse_spec by
not presuming a particular displacement between the two sets of
char-like conversion values. With this patch the above program produces
the expected output.
Signed-off-by: Nathan Sidwell <nathan@codesourcery.com>
Signed-off-by: Bernd Schmidt <bernds@codesourcery.com>
Timo Teräs [Thu, 18 Jun 2009 06:55:46 +0000 (06:55 +0000)]
inet: do not filter responses in res_query
Fixes bug #5342
res_query was silently rejecting responses against T_ANY DNS
questions.
Remove the type-filtering from res_query altogether.
__dns_lookup is supposed to return the proper stuff that you asked
for (and only that).
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sun, 17 Mar 2013 06:19:23 +0000 (07:19 +0100)]
inet: Fix LT{.old,} compilation due to res_iclose
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sun, 17 Mar 2013 06:15:58 +0000 (07:15 +0100)]
LT.old: add missing prototypes
to silence warning
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sun, 17 Mar 2013 06:14:04 +0000 (07:14 +0100)]
rpc: silence warning
Silence warning about shadowing wait
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sun, 17 Mar 2013 06:04:46 +0000 (07:04 +0100)]
test: fix non-O checking
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 09:22:56 +0000 (10:22 +0100)]
test: add missing top_srcdir
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 09:17:41 +0000 (10:17 +0100)]
buildsys: remove calls to mktemp
Nowadays we should not be racy in this area anymore, so simplify
generating temporary build-files.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 09:06:32 +0000 (10:06 +0100)]
test: silence warning in skeleton
Some tests use fd, rename the one in the skeleton.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 09:04:10 +0000 (10:04 +0100)]
test: silence warning in testsuite.h
silence warnings about unused parameters
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 08:58:56 +0000 (09:58 +0100)]
test: update test-skeleton.c
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 08:54:02 +0000 (09:54 +0100)]
libubacktrace: use libgcc_s.h
for consistency
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 08:52:40 +0000 (09:52 +0100)]
libc: switch several users to unlikely()
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 08:46:21 +0000 (09:46 +0100)]
inet: res_nclose: free user-buffer, not global _res
In res_iclose we were operating on the global _res even if called via
res_nclose where we are supposed to operate on the user provided
res_state.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 07:59:45 +0000 (08:59 +0100)]
test: dlopen: fix misplaced buildsys hunk
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Sat, 23 Feb 2013 07:43:38 +0000 (08:43 +0100)]
buildsys: remove surplus slashes from test dir paths
cosmetics
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>