summaryrefslogtreecommitdiff
path: root/libc/sysdeps
AgeCommit message (Collapse)Author
2010-05-09powerpc: Add TLS and NPTL supportKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-04-28fix a few build errors for the no threads caseAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-27MIPS: restore INLINE_SYSCALL macroGabor Juhos
The MIPS specific INLINE_SYSCALL macro has been renamed to INLINE_SYSCALL_NCS with: 763bbf9e9a27426c9be8322dca5ddf2cb4dbc464 syscall: unify part 2: NCS variety Declare common NCS (non-constant syscall) variants and convert the existing ports over to this. This change breaks system calls. The code generated with using of the new macro does not obey the restartable syscall convention used by the linux kernel. When it tries to restart the syscall the errno value is not being replaced by the syscall number. This causes weird behaviour of the 'ping' command in busybox for example: root@OpenWrt:/# ping 192.168.1.254 PING 192.168.1.254 (192.168.1.254): 56 data bytes 64 bytes from 192.168.1.254: seq=0 ttl=128 time=6.292 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=1 ttl=128 time=0.719 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=2 ttl=128 time=0.489 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=3 ttl=128 time=0.486 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=4 ttl=128 time=0.487 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=5 ttl=128 time=0.939 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=6 ttl=128 time=0.971 ms ping: recvfrom: Function not implemented 64 bytes from 192.168.1.254: seq=7 ttl=128 time=0.488 ms ping: recvfrom: Funct^C Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-27nptl: mips needs updated clone() implementationAndreas Schultz
Signed-off-by: Andreas Schultz <andreas.schultz@gmail.com> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-27libc/x86_64: use ELF-compatible definitions for assemblerRoman I Khimov
Fixes open/read/write/close breakage with NPTL on x86_64 (due to missing '.type' declaration). Done this way because there are already ELF-style definitions in assemebler code for x86_64 and looks like HAVE_ELF is not defined and used this days. Or the other way around, it'd be a bit strange for x86_64 not to have ELF. Signed-off-by: Roman I Khimov <khimov@altell.ru> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-25enable building __fcntl_nocancel, as it used unconditionally nowAustin Foxley
also sync up not-cancel.h headers between all three thread libraries Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-22nptl: fix libc internal, dynamically enabled lockingTimo Teräs
Final iteration to fix libc internal locking if libpthread is pulled in by dlopen call (directly or indirectly). We cannot really use the weak symbol trick for shared build, since the symbols won't get refreshed if libpthread is pulled in dynamically. In glibc, they have #ifdef SHARED magic to either use pthread_functions table, or weaks. But as we shared object files with both builds, this does not sounds good either. The reintroduces the libc weaks.c, but uses them now only with static build. For dynamic build, we still use the symbols with same name, but provide weaks in forward.c so they end up dereferencing the pthread_functions table indirectly if we are not linked to libpthread. Mutex initialization is hard coded as inline, as it needs to happen even if libpthread is not initially loaded. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-20nptl: remove unneeded libc-lock.h includeTimo Teräs
I semi-accidentally added include for libc-lock.h because the intention was to use locking macroes from there. However, we ended up using using the weak alias stuff. This is additionally good since now this can result in compile errors like: In file included from /toolchain/include/bits/uClibc_mutex.h:16, from /toolchain/include/bits/uClibc_stdio.h:107, from /toolchain/include/stdio.h:72, from /work/freetype-2.3.11/include/freetype/config/ftstdlib.h:100, from ./builds/unix/ftconfig.h:43, from builds/unix/ftsystem.c:21: /toolchain/include/bits/libc-lock.h:309: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void' Remove the unneeded include causing breakage. Reported-by: Kevin Day <thekevinday@gmail.com> Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-16libc: remove libc weak __pthreads_* wrappersTimo Teras
It is not possible to override for libpthread to override the weak libc definitions. This has never worked in uclibc, and does no longer work in glibc either (unless you use LD_DYNAMIC_WEAK). The proper thing to do is have weak prototypes in libc, and definitions in libpthread only. This way libc runs even if those functions are not defined, but just needs to protect against the NULL values (done by implementing __uclibc_maybe_call). This fix the problems if libc is linked before libpthread or if libpthread is pulled by a dependency library. Signed-off-by: Timo Teras <timo.teras@iki.fi> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-15nptl: fix libc sigtimedwaitTimo Teräs
It seems that 57e8823548ad6e65d33b2153edeb18fb0edc20e6 removed completely sigtimedwait symbol from libc which is wrong. I hope there is not too many other things like this. Apparently the libc_hidden_* macros actually make previously hidden symbols visible globally (creates alias from __GI_* to *). This is probably ancient confusion from times when gcc did not support visibility attribute and hiding symbols was done using hacks like this. This also adds attribute_hidden to the internal __sigtimedwait for nptl case. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-15nptl: fix libc sigaction signal checkingTimo Teräs
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>
2010-04-09Fixes NPTL build on x86.Natanael Copa
Signed-off-by: Natanael Copa <natanael.copa@gmail.com> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-06Merge commit 'origin/master' into nptlAustin Foxley
Conflicts: libc/misc/utmp/utent.c libc/sysdeps/linux/i386/bits/syscalls.h Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-06i386/bits/syscalls.h: more compact, but stack-hungry syscall code. disabled ↵Denys Vlasenko
so far Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-06i386/bits/syscalls.h: explain _BITS_SYSCALLS_ASMDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-06i386/bits/syscalls.h: generate better code using more restrictive asm ↵Denys Vlasenko
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>
2010-04-06i386/bits/syscalls.h: explain how it works. no code changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-02poll.c: fix incorrect mergeAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-02Merge commit 'origin/master' into nptlAustin Foxley
Conflicts: Makefile.in extra/Configs/Config.in libc/sysdeps/linux/common/bits/kernel-features.h libc/sysdeps/linux/common/poll.c libc/sysdeps/linux/common/sysdep.h libc/sysdeps/linux/sh/sysdep.h Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-03-25prettify make cleanBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-03-18nios2: Define INTERNAL_SYSCALL_NCS, use common sycall definesTobias Klauser
Define the nios2 version of INTERNAL_SYSCALL_NCS and remove all sycall defines already defined by the common syscall defines. This will make the master branch of uClibc compile again for nios2. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-03-18nios2: Update fcntl.h from m68kTobias Klauser
Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-03-16nios2: Add sys/user.hTobias Klauser
This is a fixed version containing copyright information. The patch should now apply using 'git am'. linux/user.h is no longer exported during kernel make headers_install Signed-off-by: Atle Nissestad <atle@nissestad.no> Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-03-05pull kernel-features.h from NPTLBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-03-04poll: unavailable on linux < 2.2.0Bernhard Reutner-Fischer
fixes bug #253 Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-02-19Get x86_64 compile to succeed.Khem Raj
* The changes to clone.S needs testing Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-02-19add dwarf defines used in cfi statementsAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-19update kernel-features.h with futex featuresAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-19fixes to get nptl compiling for x86_64Austin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-18i386 unify sysdep.hAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-18x86_64: unify sysdep.hAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-17Get new nptl building on SH4Khem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-02-17compile fixes for i386 nptlAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-17fix nptl build for sparcAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-17Fix nptl build for mipsKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-02-17Add missing libgcc_s.h header.Khem Raj
* Do not include tls.h in aeabi_read_tp.S. Its not needed. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-02-17Assorted fixed to get nptl compiling on ARMKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-02-13sparc/sigaction: revert change. These semantics are needed for nptlAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-13sparc/sysdep: Unify sparc sysdep.hAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-11arm/sysdep: Unify arm sysdep.hKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-02-11mips/sysdep.h: Unify mips sysdep.hKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-02-10libc_sh: Add a sysdep header for shCarmelo Amoroso
A new sysdep header for sh (ported from NPTL branch) to provide some useful macros in asm code: ENTRY: an entry point visible from C PSEUDO: a wrapper for syscall with proper errno checking SYSCALL_ERROR_HANDLER: errno check (suitable for TLS) This will help in NPTL integration. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-02-10libc: Add a common sysdep headerCarmelo Amoroso
Add a common header file to provide macros useful in asm code: C_LABEL to construct the asm name for a C symbol cfi_xxx to generate eh_frame unwind information. Ported from NPTL branch. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-02-09nptl: sysdep headers re-factoringCarmelo Amoroso
This patch will re-factor and simplify sysdep headers handling for nptl branch. The reason is to use some useful macros in asm code (i.e. ENTRY()) that are available only into nptl branch because are defined in sysdep.h header under the nptl folder even if they are not related to NPTL at all (this was likely due to a bad choice done at the early stage of NPTL porting). This is a required steps for integrating into master branch some asm code available in nptl branch for sh4. The main changes are described below: nptl/sysdeps/generic/sysdep.h (moved) ---> libc/sysdeps/linux/common/sysdep.h nptl/sysdeps/arm/sysdep.h (moved) ---> libc/sysdeps/linux/arm/sysdep.h nptl/sysdeps/sh/sysdep.h ---------------------| nptl/sysdeps/unix/sh/sysdep.h ----------------| nptl/sysdeps/unix/sysv/linux/sh/sysdep.h -----| nptl/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h -| |(merged) ---> libc/sysdeps/linux/sh nptl/sysdeps/unix/sysdep.h (deleted) Similarly the mips and arm sysdep.h should be merged and updated as for sh arch. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-02-05getdents: Fix mips64 buildAtsushi Nemoto
On Wed, 27 Jan 2010 07:14:08 +0100, Carmelo AMOROSO <carmelo.amoroso@st.com> wrote: > I would re-write your patch in a simpler way. > > We already have the following > > 136 #if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64 > 137 attribute_hidden strong_alias(__getdents,__getdents64) > 138 #endif > > I think that it's simpler to move in the proper place this statement. Thanks, indeed. If we came into "#elif WORDSIZE == 32" block, above condition never be true. So we can just move this statement out of "#if...#elif...#elif...#endif" block. Here is a revised patch. ------------------------------------------------------ From: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Subject: [PATCH] getdents: Fix mips64 build Some archs (such as mips64) do not have getdents64 syscall but have getdents syscall. Define alias for it. This fixes regression from 0.9.30.1. Backgrounds: This is once done by commit e8b1c674. But after the commit 33bcf733 ("Use getdents syscall if kernel provide supports for this instead of relying upon getdents64."), if __ASSUME_GETDENTS32_D_TYPE was defined the alias for getdents64 is not defined. The macro __ASSUME_GETDENTS32_D_TYPE had been effectively ignored until 0.9.30.1 but the commit 0f0f20ab ("Move kernel-features.h header from the linuxthread directory to a common one...") really enables it. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-02-05Merge commit 'origin/master' into nptlAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-05prctl: silence shadow warningsBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-02-05kernel-features: add __ASSUME_POSIX_CPU_TIMERSBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-02-03Unbreak build for sparc on some config'sAustin Foxley
Thanks to rob@landley.net Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-02-03powerpc/bits/sysdep.h: move confusingly placed #undefDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>