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(a)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(a)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
--
uClibc-ng - small C library for embedded systems