summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arm
AgeCommit message (Collapse)Author
2013-12-20libc/sysdeps: commonize ret_ERRVALBaruch Siach
* 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>
2013-04-01linux: posix_fadvise: use new SYSCALL_ALIGN_64BITMike Frysinger
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>
2013-04-01libc: rename TRUNCATE64_HAS_4_ARGS to SYSCALL_ALIGN_64BITMike Frysinger
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>
2013-03-14libc: switch several users to unlikely()Bernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2013-02-11libc/{arm, i386}/Makefile.arch: Don't build 64-bit code if LFS is disabledMarkos Chandras
Fixes the following compilation error: _lfs_64.h: # error Do not include this header in files not built when LFS is disabled Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2013-01-10buildsys: use kbuild styleBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2013-01-10libc: add {get,set,swap,make}context user context manipulation functionsFlorian Fainelli
Add the obsolescent SUSv3 family of user context manipulating functions for arm, i386, mips, x86_64. Signed-off-by: Timon ter Braak <timonterbraak@gmail.com> Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-12-11arm: clone: restore stack pointer just after return from syscallFilippo Arcidiacono
If the syscall returns with an error the stack pointer and r4 register are not restored because the instruction 'ldmnefd sp!, {r4}' is executed after branching to '__error' label. This bug has been spotted out by running './utstest clone 5' from LTP built with -fstack-protector-all compiler flag as log below: root@cortex-a9:/usr/tests/ltp/testcases/bin# ./utstest clone 5 stack smashing detected: ./utstest terminated() Regression introduced by commit e58798e107d652644629a1daaa95d76430808d53 Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com> Signed-off-by: Giuseppe Di Giore <giuseppe.di-giore@st.com> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2012-11-18Replace FSF snail mail address with URLsMike Frysinger
This matches a similar change made to glibc. No functional changes here. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-10-02libc/sysdeps: add __kernel_long and __kernel_ulongChris Packham
Linux 3.4 added __kernel_long_t and __kernel_ulong_t and various exported header files were updated to use these new types. Add the definitions for __kernel_long_t and __kernel_ulong_t to the relevant kernel_types.h headers. This change was automated with the following scriptlet git grep --name-only 'typedef.*__kernel_old_dev_t' \ | xargs sed -i '/typedef.*__kernel_old_dev_t/ a\ typedef long\t\t__kernel_long_t;\ typedef unsigned long\t__kernel_ulong_t;' Whitespace in arm, avr32, hppa, sparc was then manually fixed up. Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> -- Here's a cleaned up patch which should get the whitespace right. I'm a bit iffy about the sparc changes they make sense to me but it's not a platform I have access to. I can break this up per arch or per maintainer if requested. libc/sysdeps/linux/alpha/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/arm/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/avr32/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/bfin/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/c6x/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/cris/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/e1/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/h8300/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/hppa/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/i386/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/ia64/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/m68k/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/microblaze/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/mips/bits/kernel_types.h | 4 ++++ libc/sysdeps/linux/nios2/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/powerpc/bits/kernel_types.h | 4 ++++ libc/sysdeps/linux/sh/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/sh64/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/sparc/bits/kernel_types.h | 4 ++++ libc/sysdeps/linux/v850/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/x86_64/bits/kernel_types.h | 2 ++ libc/sysdeps/linux/xtensa/bits/kernel_types.h | 2 ++ 22 files changed, 50 insertions(+) Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15vfork: make all archs consistentPeter S. Mazinger
__vfork is hidden. __GI_vfork is strong (not weak as it was). vfork is weak. e1 can use the generic version. Note: libc_hidden_def(x) has different meaning in .c and .S files. Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15*64.[cS]: use _lfs_64.h instead of features.h and remove LFS guardPeter S. Mazinger
_lfs_64.h makes the compile fail, if LFS is not enabled, no need for the guard. Reorganize to include only the minimal necessary headers. Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15posix_fadvise: make posix_fadvise[64] similar on all archsPeter S. Mazinger
Remove all versions, that can be covered by the common one. Drop incorrectly implemented fallback support, if __NR_fadvise64_64 is not available. To support 64 bit ppc, move ppc support into common. Cleanup including headers. Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15arm: avoid 2 compiler warningsPeter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15mmap.c: provide a common mmap.c that is good for most of archsPeter S. Mazinger
Remove all others, only avr32 needs to be kept. Define __UCLIBC_ARCH_HAS_6_ARGS__ where needed. Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15remove libc_hidden_proto(ioperm) from all headers except armPeter S. Mazinger
While there, guard everywhere ioperm and iopl prototypes with __UCLIBC_LINUX_SPECIFIC__ Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15cleanup bits/setjmp.h of stuff moved to jmpbuf-offsets.h and jmpbuf-unwind.hPeter S. Mazinger
Make sure we use the new jmpbuf-*.h headers While there, adapt the offset on microblaze and the _JMPBUF_UNWINDS macro on bfin, it seems, these were changed in the meantime. Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15make use of jmpbuf-offsets.h and jmpbuf-unwind.hPeter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15jmpbuf-unwind.h: add NTPL related sectionPeter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15add jmpbuf-offsets.h and jmpbuf-unwind.h for all archs (LT related)Peter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15arm: consistency check OABI v. EABIPeter S. Mazinger
added check in toolchain and config Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15signal.h: provide prototype for __libc_sigaction and remove all othersPeter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-04-26arm: use PATH_MEM in ioperm()Bernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-03-26Revert "Fix redefinition of ioperm and iopl in stubs.c and ↵Mike Frysinger
arm/{ioperm.c,iopl.c}" This reverts commit 3bcd031f97d61a8f732d865a0f4248aed2d191ab. The arm code is supposed to provide its own userspace ioperm/iopl functions. They've never had system calls for these funcs. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-26Fix redefinition of ioperm and iopl in stubs.c and arm/{ioperm.c,iopl.c}Jason Woodward
This fixes the following link failure: LD libuClibc-0.9.33.so libc/libc_so.a(stubs.os): In function `sync_file_range': stubs.c:(.text+0x0): multiple definition of `ioperm' libc/libc_so.a(ioperm.os):ioperm.c:(.text+0x260): first defined here libc/libc_so.a(stubs.os): In function `sync_file_range': stubs.c:(.text+0x0): multiple definition of `iopl' libc/libc_so.a(iopl.os):iopl.c:(.text+0x0): first defined here collect2: ld returned 1 exit status make[1]: *** [lib/libc.so] Error 1 Signed-off-by: Jason Woodward <jason.woodward@timesys.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-02-13arm: Do not use 'sed -r' to calculate IS_EABIKhem Raj
-r is not available on BSD sed so to keep compatibility avoid using it. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2012-01-29tmpnam, tempnam are obsolete in SUSV4Bernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-28*: if !HAS_THREADS strong alias sigactionBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-28buildsys: fixup sigaction handlingBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-27libc_arm: avoid multiple version of __aeabi_unwind_cpp_pr dummy codeCarmelo Amoroso
Do not pollute libraries with its own implementation of __aeabi_unwind_cpp_pr1 code. Just add it to uclibc_nonshared.a archive and share it. This fixes build issue with static linking of application due to multiple symbol definition in libgcc_eh-a and libpthread.a or librt.a Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2012-01-26*: silence some warningsBernhard Reutner-Fischer
warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-01-26arm: tweak commentBernhard Reutner-Fischer
harmless copy'n paste error Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2011-06-11ARM: remove EABI/OABI selectionYann E. MORIN
Rely on the compiler to be properly setup for the default ABI. When installing-headers, there are two cases: - NPTL: no issue, a cross-compiler is already expected - LinuxThreads: no issue, EABI/OABI has no impact on installed headers. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Cc: Khem Raj <raj.khem@gmail.com> Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Cc: Carmelo AMOROSO <carmelo.amoroso@st.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
2011-06-11ARM: detect BX availibility at build timeYann E. MORIN
The "use BX" option is now a suggestion that BX be used if available. Use a macro to detect if BX is available at build time. If so, and the user requested it be used, then use it. Otherwise, error out. Macro courtesy Khem RAJ: http://lists.uclibc.org/pipermail/uclibc/2009-April/042301.html Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Cc: Khem Raj <raj.khem@gmail.com> Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Cc: Carmelo AMOROSO <carmelo.amoroso@st.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
2011-06-11ARM: #include <bits/arm_asm.h> where __USE_BX__ is usedYann E. MORIN
The check for __USE_BX__ will be available in bits/arm_asm.h, so the latter must be included wherever the former is used. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Cc: Khem Raj <raj.khem@gmail.com> Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Cc: Carmelo AMOROSO <carmelo.amoroso@st.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
2011-05-13unwind.h: Move to libc/sysdeps from nptl sysdepsKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2011-05-10*/crtn.S: Remove .size directive for _init and _finiBernhard Reutner-Fischer
These are split across objects so setting size does not (and never did) work since the expression cannot be computed at assembly time. This avoids errors from recent (> 2.21) gas. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2011-05-05Revert "*/crt?.S: remove .size directives"Bernhard Reutner-Fischer
Removing them generally was not a good idea This reverts commit 233c504cd940d9802226b6a3a092368b86978f5e.
2011-05-04*/crt?.S: remove .size directivesBernhard Reutner-Fischer
sed -i -e '/\.size[[:space:]]/d' $(grep -l "\.size" libc/sysdeps/linux/*/crt*.[sSc]) Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2011-03-14arm/bits/atomic.h: Include common/bit/atomic.h for thumb1Khem Raj
This restores the behavior for thumb1 builds and yet uses the new atomic.h for arm and thumb2 modes. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2011-03-09regcomp.c, aeabi_mb_cur_max.c: use unconditionally MB_CUR_MAX from stdlib.hPeter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
2011-03-09bits/kernel_stat.h: no need for _LIBC guard, the file is not installed on targetPeter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
2011-02-24unify stub logicMike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-11arm: use CAS gcc builtin if SI-mode pattern is availableBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2011-02-09arm: mv nptl specific atomic impl to common placeBernhard Reutner-Fischer
Thanks to Nitin Garg for notincing! Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-21arm/crt1.S: Avoid dependency on PC+4 or PC+8Khem Raj
* fix a problem with Thumb PIE binaries, where the GOT was located incorrectly because of an offset 8 Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-07-15arm: Macros in sysdeps/linux/arm also needed to be changed to accept _a1 to ↵Khem Raj
__a1 renaming. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-07-14silence shadow warningsBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-07-07arm: Silence warning about shadow declarationsKhem Raj
libc/inet/socketcalls.c: In function ‘__libc_recvfrom’: libc/inet/socketcalls.c:229:1: warning: declaration of ‘_sys_result’ shadows a previous local libc/inet/socketcalls.c:229:1: warning: shadowed declaration is here Signed-off-by: Khem Raj <raj.khem@gmail.com>
2010-07-06nptl: fix buildsysBernhard Reutner-Fischer
Now automatically picks the correct (arch and subarch specific) impls in favour of generic impls. make O=/tmp/objs PREFIX=/my/sysroot -j works now as expected (both out-of-tree as well as parallel-safe). Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>