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, master has been updated via a10bef923c796d086d65019114fc80ef2d3624df (commit) via edb9657fbfe728882789e65e0266bd440f02b44f (commit) from 43181763e535ef94f5122945c26ad335f0a71e9c (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 a10bef923c796d086d65019114fc80ef2d3624df Author: Waldemar Brodkorb wbx@uclibc-ng.org Date: Mon Nov 30 18:32:12 2015 +0100
bfin: fix clashing with newer gcc
See here for a discussion about the problem: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47779
Latest gcc/binutils git can generate a working uClibc-ng toolchain. Binaries tested on Arcturus uCBF54x board via chroot from original firmware.
commit edb9657fbfe728882789e65e0266bd440f02b44f Author: Waldemar Brodkorb wbx@uclibc-ng.org Date: Mon Nov 30 18:31:53 2015 +0100
bfin: use vfork.S again
Actually revert 711ad9f92c1cf992c4a3d9f4f709bd692be7789c, as it breaks vfork() on real hardware. So the common implementation no longer works for bfin.
-----------------------------------------------------------------------
Summary of changes: libc/sysdeps/linux/bfin/Makefile.arch | 2 +- libc/sysdeps/linux/bfin/sys/ucontext.h | 6 ++++++ libc/sysdeps/linux/bfin/vfork.S | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 libc/sysdeps/linux/bfin/vfork.S
diff --git a/libc/sysdeps/linux/bfin/Makefile.arch b/libc/sysdeps/linux/bfin/Makefile.arch index df76ab0..8e945cd 100644 --- a/libc/sysdeps/linux/bfin/Makefile.arch +++ b/libc/sysdeps/linux/bfin/Makefile.arch @@ -8,7 +8,7 @@ CSRC-y := bsdsetjmp.c clone.c \ sram-alloc.c sram-free.c dma-memcpy.c
-SSRC-y := __longjmp.S setjmp.S bsd-_setjmp.S +SSRC-y := __longjmp.S setjmp.S bsd-_setjmp.S vfork.S
CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c
diff --git a/libc/sysdeps/linux/bfin/sys/ucontext.h b/libc/sysdeps/linux/bfin/sys/ucontext.h index 4b3654d..b6e3a40 100644 --- a/libc/sysdeps/linux/bfin/sys/ucontext.h +++ b/libc/sysdeps/linux/bfin/sys/ucontext.h @@ -32,6 +32,11 @@ typedef int greg_t; /* Container for all general registers. */ typedef greg_t gregset_t[NGREG];
+/* There is no user thread context implementation for bfin, avoid + clashing with gcc symbols, see: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47779 +*/ +#if 0 /* Number of each register is the `gregset_t' array. */ enum { @@ -130,6 +135,7 @@ enum REG_SEQSTAT = 46 #define REG_SEQSTAT REG_SEQSTAT }; +#endif
/* Context to describe whole processor state. */ typedef struct diff --git a/libc/sysdeps/linux/bfin/vfork.S b/libc/sysdeps/linux/bfin/vfork.S new file mode 100644 index 0000000..d8e6557 --- /dev/null +++ b/libc/sysdeps/linux/bfin/vfork.S @@ -0,0 +1,18 @@ +/* + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + */ + +#include <sys/syscall.h> + +.text +.global ___vfork +.hidden ___vfork +.type ___vfork,STT_FUNC; +.align 4 +___vfork: + p0 = __NR_vfork; + excpt 0; + rts; +.size ___vfork,.-___vfork +weak_alias(__vfork,vfork) +libc_hidden_weak(vfork)
hooks/post-receive