This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated via a22b1f00846fb4dc09fe8ddc32a44152875af7c2 (commit) via 4123d99677a8e5872f947e8a444f3481c71ab759 (commit) via 8404d33c7b5423302a16d03d05b7e71194e74ae9 (commit) from 037eeeea891eb7d416817d44292e886723de5c91 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit a22b1f00846fb4dc09fe8ddc32a44152875af7c2 Author: Waldemar Brodkorb wbx@openadk.org Date: Sun Mar 8 10:59:07 2015 -0500
fix regression for ARM thumb mode
Sync with GNU libc, see here why r7 is not usable for thumb mode: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/arm... Remove old OABI support.
Fixes build breakage for ARM noMMU builds. Still no runtime testing.
commit 4123d99677a8e5872f947e8a444f3481c71ab759 Author: Waldemar Brodkorb wbx@openadk.org Date: Sun Mar 8 14:00:06 2015 -0500
okay, chicken-egg-problem solved really now. (was xtensa no thread failure)
commit 8404d33c7b5423302a16d03d05b7e71194e74ae9 Author: Max Filippov jcmvbkbc@gmail.com Date: Sun Mar 8 15:15:13 2015 +0300
Makefile.in: add missing dependency on bits/sysnum.h to $(pregen-headers-y)
This fixes the following build error:
GEN include/bits/sysnum.h GEN libpthread/nptl/sysdeps/unix/sysv/linux/structsem.h GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelbarrier.h GEN libpthread/nptl/sysdeps/unix/sysv/linux/structsem.h GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h GEN libpthread/nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.h GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelbarrier.h GEN libpthread/nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.h In file included from ./libpthread/nptl/pthreadP.h:25:0, from <stdin>:2: ./include/sys/syscall.h:24:25: fatal error: bits/sysnum.h: No such file or directory #include <bits/sysnum.h> ^ compilation terminated. GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelcond.h make[1]: *** [libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h] Error 1
Signed-off-by: Max Filippov jcmvbkbc@gmail.com
-----------------------------------------------------------------------
Summary of changes: Makefile.in | 2 +- ldso/ldso/xtensa/dl-tlsdesc.S | 6 +-- libc/sysdeps/linux/arm/bits/syscalls.h | 56 ++++++++++----------------- libc/sysdeps/linux/common/sync_file_range.c | 3 ++ 4 files changed, 26 insertions(+), 41 deletions(-)
diff --git a/Makefile.in b/Makefile.in index 5d60dda..b4bc4b2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -167,7 +167,7 @@ $(ALL_HEADERS_SYS_ARCH): $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/sys/$(@F) $@ endif
-$(target-headers-sysdep) $(pregen-headers-y): | $(top_builddir)include/bits $(top_builddir)include/sys +$(target-headers-sysdep) $(pregen-headers-y): | $(top_builddir)include/bits $(top_builddir)include/sys $(top_builddir)include/bits/sysnum.h
HEADERCLEAN_common: $(do_rm) $(ALL_HEADERS_COMMON) diff --git a/ldso/ldso/xtensa/dl-tlsdesc.S b/ldso/ldso/xtensa/dl-tlsdesc.S index f1bbf41..0638af4 100644 --- a/ldso/ldso/xtensa/dl-tlsdesc.S +++ b/ldso/ldso/xtensa/dl-tlsdesc.S @@ -18,12 +18,10 @@
#include <sysdep.h>
-#if defined(USE_TLS) && USE_TLS - +#if defined __UCLIBC_HAS_TLS__ #include <tls.h> #include "tlsdesc.h"
- .text .align 4 .hidden _dl_tlsdesc_return @@ -97,4 +95,4 @@ _dl_tlsdesc_dynamic: .size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
#endif /* SHARED */ -#endif /* USE_TLS */ +#endif diff --git a/libc/sysdeps/linux/arm/bits/syscalls.h b/libc/sysdeps/linux/arm/bits/syscalls.h index 6b747d9..778cc34 100644 --- a/libc/sysdeps/linux/arm/bits/syscalls.h +++ b/libc/sysdeps/linux/arm/bits/syscalls.h @@ -43,41 +43,7 @@ }) \ )
-#if !defined(__thumb__) -#if defined(__ARM_EABI__) -#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \ -(__extension__ \ - ({unsigned int __internal_sys_result; \ - { \ - register int __a1 __asm__ ("r0"), _nr __asm__ ("r7"); \ - LOAD_ARGS_##nr (args) \ - _nr = (name); \ - __asm__ __volatile__ ("swi 0x0 @ syscall " #name \ - : "=r" (__a1) \ - : "r" (_nr) ASM_ARGS_##nr \ - : "memory"); \ - __internal_sys_result = __a1; \ - } \ - (int) __internal_sys_result; }) \ -) -#else /* defined(__ARM_EABI__) */ - -#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \ -(__extension__ \ - ({ unsigned int __internal_sys_result; \ - { \ - register int __a1 __asm__ ("a1"); \ - LOAD_ARGS_##nr (args) \ - __asm__ __volatile__ ("swi %1 @ syscall " #name \ - : "=r" (__a1) \ - : "i" (name) ASM_ARGS_##nr \ - : "memory"); \ - __internal_sys_result = __a1; \ - } \ - (int) __internal_sys_result; }) \ -) -#endif -#else /* !defined(__thumb__) */ +#if defined(__thumb__) /* We can't use push/pop inside the asm because that breaks unwinding (ie. thread cancellation). */ @@ -101,7 +67,23 @@ } \ (int) __internal_sys_result; }) \ ) -#endif /*!defined(__thumb__)*/ +#else /* ARM */ +#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \ +(__extension__ \ + ({unsigned int __internal_sys_result; \ + { \ + register int __a1 __asm__ ("r0"), _nr __asm__ ("r7"); \ + LOAD_ARGS_##nr (args) \ + _nr = (name); \ + __asm__ __volatile__ ("swi 0x0 @ syscall " #name \ + : "=r" (__a1) \ + : "r" (_nr) ASM_ARGS_##nr \ + : "memory"); \ + __internal_sys_result = __a1; \ + } \ + (int) __internal_sys_result; }) \ +) +#endif
#define INTERNAL_SYSCALL_ERROR_P(val, err) \ ((unsigned int) (val) >= 0xfffff001u) @@ -138,11 +120,13 @@ LOAD_ARGS_5 (a1, a2, a3, a4, a5) \ register int _v2 __asm__ ("v2") = _v2tmp; #define ASM_ARGS_6 ASM_ARGS_5, "r" (_v2) +#ifndef __thumb__ #define LOAD_ARGS_7(a1, a2, a3, a4, a5, a6, a7) \ int _v3tmp = (int) (a7); \ LOAD_ARGS_6 (a1, a2, a3, a4, a5, a6) \ register int _v3 __asm__ ("v3") = _v3tmp; #define ASM_ARGS_7 ASM_ARGS_6, "r" (_v3) +#endif
#endif /* __ASSEMBLER__ */ diff --git a/libc/sysdeps/linux/common/sync_file_range.c b/libc/sysdeps/linux/common/sync_file_range.c index db797de..52bc9d7 100644 --- a/libc/sysdeps/linux/common/sync_file_range.c +++ b/libc/sysdeps/linux/common/sync_file_range.c @@ -24,6 +24,9 @@ static int __NC(sync_file_range)(int fd, off64_t offset, off64_t nbytes, unsigne { # if defined __powerpc__ && __WORDSIZE == 64 return INLINE_SYSCALL(sync_file_range, 4, fd, flags, offset, nbytes); +# elif defined __arm__ && defined __thumb__ + return INLINE_SYSCALL(sync_file_range, 6, fd, + OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags); # elif (defined __mips__ && _MIPS_SIM == _ABIO32) || \ (defined(__UCLIBC_SYSCALL_ALIGN_64BIT__) && !(defined(__powerpc__) || defined(__xtensa__))) /* arch with 64-bit data in even reg alignment #2: [arcv2/others-in-future]
hooks/post-receive