Hi,
I try to rebuild an old toolchain from my script which was originally
using uClibc 0.9.33.X, i have updated to binutils 2.25, gcc 4.9.3 and
uclibc-ng 1.0.5. But the build failed when building uclibc. Is
something wrong with the configuration of gcc first stage ?
LD ld-uClibc-1.0.5.so
STRIP -x -R .note -R .comment
/home/clement/cortex-toolchain/obj/uclibc/lib/libubacktrace.a
STRIP -x -R .note -R .comment
/home/clement/cortex-toolchain/obj/uclibc/lib/libdl.a
arm-unknown-linux-uclibcgnueabi-gcc: error: libgcc_eh.a: No such file
or directory
ldso/ldso/Makefile.in:76: recipe for target
'/home/clement/cortex-toolchain/obj/uclibc/lib/ld-uClibc.so' failed
make: *** [/home/clement/cortex-toolchain/obj/uclibc/lib/ld-uClibc.so] Error 1
make: *** Waiting for unfinished jobs....
My target is an arm linux and this the gcc first stage options:
${SRCDIR}/${GCC}/configure \
--target=${TARGET} \
--prefix=${PREFIX} \
--disable-decimal-float \
--disable-libatomic \
--disable-libgomp \
--disable-libmudflap \
--disable-libquadmath \
--disable-libssp \
--disable-libstdcxx-pch \
--disable-nls \
--disable-shared \
--disable-threads \
--enable-languages=c \
--enable-poison-system-directories \
--with-gnu-as \
--with-gnu-ld \
--with-newlib \
--with-sysroot=${SYSROOT} \
--without-headers \
--with-gmp=${LIBDIR} \
--with-mpc=${LIBDIR} \
--with-mpfr=${LIBDIR}
make all-gcc all-target-libgcc
make install-gcc install-target-libgcc
Thanks,
Clement
Hi,
the results of the OpenADK workshop in Essen are now included
in the release. Fixes for gcc 5.2.x/x86 and mips64 for n32
are the most important ones.
best regards
Waldemar
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 annotated tag, v1.0.5 has been created
at b0a9e75aab5e6257523c2eeeac80da96b19b9160 (tag)
tagging 647c71be1b8840cc14130393df7615759ab0f899 (commit)
replaces v1.0.4
tagged by Waldemar Brodkorb
on Sun Aug 2 12:23:26 2015 +0200
- Log -----------------------------------------------------------------
release 1.0.5 - Gulden Draak
Claudiu Zissulescu (1):
ARCv2: update memset() so it could be used without double load/stores
Waldemar Brodkorb (5):
fix static builds of pthread apps for x86/x86_64
set title correctly, as mentioned by tg
simplify, as the other does not work correctly, suggested by tg
sh: fix static linking issue
bump version for release
mirabilos (3):
integrate old m68k vfork bugfix of pre-µClibc-ng tree
fix MIPS N32 ABI Big Endian setjmp/longjmp
fix inline asm changing the stack pointer leading to segfaults problem
-----------------------------------------------------------------------
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
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 647c71be1b8840cc14130393df7615759ab0f899 (commit)
from c13f823941b103cf744929e5afcb3e2bc1342354 (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 647c71be1b8840cc14130393df7615759ab0f899
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Sun Aug 2 10:45:30 2015 +0200
bump version for release
-----------------------------------------------------------------------
Summary of changes:
Rules.mak | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Rules.mak b/Rules.mak
index a572b9f..4ca22b0 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -126,7 +126,7 @@ export RUNTIME_PREFIX DEVEL_PREFIX KERNEL_HEADERS MULTILIB_DIR
# Now config hard core
MAJOR_VERSION := 1
MINOR_VERSION := 0
-SUBLEVEL := 4
+SUBLEVEL := 5
EXTRAVERSION :=
VERSION := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
ABI_VERSION := $(MAJOR_VERSION)
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
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 c13f823941b103cf744929e5afcb3e2bc1342354 (commit)
via 7966d8aca0af0048b3d82bc9af210c293a4c9aac (commit)
via f5fa14e19c3dcd5f9648a8caaba63bc430f536da (commit)
via cdfebe7629971fc671a10c9b419f33f9ff928cbd (commit)
via fb1802d9b238ecb7066ab0867d8c4c3c3acefaea (commit)
from d8e6976a83cdd0ecac260de3afcb1973db8dffb0 (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 c13f823941b103cf744929e5afcb3e2bc1342354
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Wed Jul 29 21:06:54 2015 +0200
sh: fix static linking issue
commit 7966d8aca0af0048b3d82bc9af210c293a4c9aac
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Sat Jul 25 19:42:41 2015 +0200
simplify, as the other does not work correctly, suggested by tg
commit f5fa14e19c3dcd5f9648a8caaba63bc430f536da
Author: mirabilos <tg(a)mirbsd.org>
Date: Sat Jul 25 18:51:26 2015 +0200
fix inline asm changing the stack pointer leading to segfaults problem
commit cdfebe7629971fc671a10c9b419f33f9ff928cbd
Author: mirabilos <tg(a)mirbsd.org>
Date: Sat Jul 25 00:37:44 2015 +0200
fix MIPS N32 ABI Big Endian setjmp/longjmp
access to the jmp_buf structure occasionally happens asymmetrically:
fields defined in pointer size width (64 on N32) can be accessed as
32-bit words, but in that case, a̲l̲l̲ involved code must agree on that…
commit fb1802d9b238ecb7066ab0867d8c4c3c3acefaea
Author: mirabilos <tg(a)mirbsd.org>
Date: Fri Jul 24 22:18:07 2015 +0200
integrate old m68k vfork bugfix of pre-µClibc-ng tree
-----------------------------------------------------------------------
Summary of changes:
ldso/include/dl-syscall.h | 2 +-
libc/sysdeps/linux/i386/brk.c | 20 ++++++++++++--------
libc/sysdeps/linux/m68k/vfork.S | 19 +++++++++++--------
libc/sysdeps/linux/mips/__longjmp.c | 6 +++---
libpthread/nptl/forward.c | 2 +-
.../nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S | 6 ++++++
6 files changed, 34 insertions(+), 21 deletions(-)
diff --git a/ldso/include/dl-syscall.h b/ldso/include/dl-syscall.h
index 46ba07e..5528ba6 100644
--- a/ldso/include/dl-syscall.h
+++ b/ldso/include/dl-syscall.h
@@ -51,7 +51,7 @@ extern int _dl_errno;
static __always_inline attribute_noreturn __cold void _dl_exit(int status)
{
INLINE_SYSCALL(_dl_exit, 1, status);
-#if defined __GNUC__ && (!__GNUC_PREREQ (4, 4) && !__GNUC_PREREQ (4, 2))
+#if __GNUC_PREREQ(4, 5)
__builtin_unreachable(); /* shut up warning: 'noreturn' function does return*/
#else
while (1);
diff --git a/libc/sysdeps/linux/i386/brk.c b/libc/sysdeps/linux/i386/brk.c
index c2c9327..a513886 100644
--- a/libc/sysdeps/linux/i386/brk.c
+++ b/libc/sysdeps/linux/i386/brk.c
@@ -1,6 +1,7 @@
/* brk system call for Linux/i386.
Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
+ Copyright (c) 2015 mirabilos <tg(a)mirbsd.org>
+ This file is part of uclibc-ng, derived from the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -27,15 +28,18 @@ int brk(void *addr)
{
void *newbrk;
- /* %ebx is used in PIC code, need to save/restore it manually.
- * gcc won't do it for us if we will request it in constraints
+ /*
+ * EBC is used in PIC code, we need to save/restore it manually.
+ * Unfortunately, GCC won't do that for us even if we use con-
+ * straints, and we cannot push it either as ESP clobbers are
+ * silently ignored, but EDX is preserved, so it's scratch space.
*/
- __asm__("pushl %%ebx\n"
- "movl %2, %%ebx\n"
- "int $0x80\n"
- "popl %%ebx\n"
+ __asm__("xchgl %%edx,%%ebx"
+ "\n int $0x80"
+ "\n xchgl %%edx,%%ebx"
: "=a" (newbrk)
- : "0" (__NR_brk), "g" (addr)
+ : "0" (__NR_brk), "d" (addr)
+ : "cc"
);
__curbrk = newbrk;
diff --git a/libc/sysdeps/linux/m68k/vfork.S b/libc/sysdeps/linux/m68k/vfork.S
index b2fe033..bde9d5a 100644
--- a/libc/sysdeps/linux/m68k/vfork.S
+++ b/libc/sysdeps/linux/m68k/vfork.S
@@ -22,20 +22,23 @@ __vfork:
movl %sp@+, %a1 /* save the return address for later */
movl IMM __NR_vfork,%d0
trap #0
- movl IMM -4097, %d1
- cmpl %d0, %d1
- bcs fix_errno
- jmp %a1@ /* don't return, just jmp directly */
-fix_errno:
- negl %d0
+ movl %a1, -(%sp)
+
+ cmpil #-4096,%d0
+ blss 1f
+
+ neg.l %d0
#ifndef __PIC__ /* needs handling as the other archs */
movl errno, %a0
#else
movl errno@GOT(%a5), %a0
#endif
movl %d0, %a0@
- movl IMM -1, %d0
- jmp %a1@ /* don't return, just jmp directly */
+ move.l #-1, %d0
+
+1:
+ move.l %d0, %a0
+ rts
.size __vfork,.-__vfork
weak_alias(__vfork,vfork)
diff --git a/libc/sysdeps/linux/mips/__longjmp.c b/libc/sysdeps/linux/mips/__longjmp.c
index 5b59971..aa94f76 100644
--- a/libc/sysdeps/linux/mips/__longjmp.c
+++ b/libc/sysdeps/linux/mips/__longjmp.c
@@ -101,13 +101,13 @@ void __longjmp (__jmp_buf env, int val_arg)
/* Restore the stack pointer and the FP. They have to be restored
last and in a single asm as gcc, depending on options used, may
use either of them to access env. */
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM != _MIPS_SIM_ABI32
__asm__ __volatile__ ("ld $29, %0\n\t"
"ld $30, %1\n\t" : : "m" (env[0].__sp), "m" (env[0].__fp));
-#else /* O32 || N32 */
+#else /* O32 */
__asm__ __volatile__ ("lw $29, %0\n\t"
"lw $30, %1\n\t" : : "m" (env[0].__sp), "m" (env[0].__fp));
-#endif /* O32 || N32 */
+#endif /* O32 */
/* Give setjmp 1 if given a 0, or what they gave us if non-zero. */
if (val == 0)
diff --git a/libpthread/nptl/forward.c b/libpthread/nptl/forward.c
index 48d38d9..076d437 100644
--- a/libpthread/nptl/forward.c
+++ b/libpthread/nptl/forward.c
@@ -160,7 +160,7 @@ FORWARD2(__pthread_unwind,
/* We cannot call abort() here. */
INTERNAL_SYSCALL_DECL (err);
INTERNAL_SYSCALL (kill, err, 1, SIGKILL);
-#if defined __GNUC__ && (!__GNUC_PREREQ (4, 4) && !__GNUC_PREREQ (4, 2))
+#if __GNUC_PREREQ(4, 5)
__builtin_unreachable();
#else
while(1);
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
index bac9dd4..9af4ea4 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
@@ -138,6 +138,9 @@
.globl __lll_lock_wait_private
.type __lll_lock_wait_private,@function
.hidden __lll_lock_wait_private
+#ifndef IS_IN_libpthread
+ .weak __lll_lock_wait_private
+#endif
.align 5
cfi_startproc
__lll_lock_wait_private:
@@ -409,6 +412,9 @@ __lll_timedlock_wait:
.globl __lll_unlock_wake_private
.type __lll_unlock_wake_private,@function
.hidden __lll_unlock_wake_private
+#ifndef IS_IN_libpthread
+ .weak __lll_unlock_wake_private
+#endif
.align 5
cfi_startproc
__lll_unlock_wake_private:
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
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 7eb0394d914a66f2246fa3496718c83635f7e19c (commit)
from 7bf95f34d342dab702f9cc47b416d7d9bdbac38a (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 7eb0394d914a66f2246fa3496718c83635f7e19c
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Wed Jul 29 21:06:54 2015 +0200
sh: fix static linking issue
-----------------------------------------------------------------------
Summary of changes:
libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
index bac9dd4..9af4ea4 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
@@ -138,6 +138,9 @@
.globl __lll_lock_wait_private
.type __lll_lock_wait_private,@function
.hidden __lll_lock_wait_private
+#ifndef IS_IN_libpthread
+ .weak __lll_lock_wait_private
+#endif
.align 5
cfi_startproc
__lll_lock_wait_private:
@@ -409,6 +412,9 @@ __lll_timedlock_wait:
.globl __lll_unlock_wake_private
.type __lll_unlock_wake_private,@function
.hidden __lll_unlock_wake_private
+#ifndef IS_IN_libpthread
+ .weak __lll_unlock_wake_private
+#endif
.align 5
cfi_startproc
__lll_unlock_wake_private:
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
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 7bf95f34d342dab702f9cc47b416d7d9bdbac38a (commit)
from 4f0f1d754ff5e1e7076ebf2bf02b18fc357bc51c (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 7bf95f34d342dab702f9cc47b416d7d9bdbac38a
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Sat Jul 25 19:42:41 2015 +0200
simplify, as the other does not work correctly, suggested by tg
-----------------------------------------------------------------------
Summary of changes:
ldso/include/dl-syscall.h | 2 +-
libpthread/nptl/forward.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ldso/include/dl-syscall.h b/ldso/include/dl-syscall.h
index 46ba07e..5528ba6 100644
--- a/ldso/include/dl-syscall.h
+++ b/ldso/include/dl-syscall.h
@@ -51,7 +51,7 @@ extern int _dl_errno;
static __always_inline attribute_noreturn __cold void _dl_exit(int status)
{
INLINE_SYSCALL(_dl_exit, 1, status);
-#if defined __GNUC__ && (!__GNUC_PREREQ (4, 4) && !__GNUC_PREREQ (4, 2))
+#if __GNUC_PREREQ(4, 5)
__builtin_unreachable(); /* shut up warning: 'noreturn' function does return*/
#else
while (1);
diff --git a/libpthread/nptl/forward.c b/libpthread/nptl/forward.c
index 48d38d9..076d437 100644
--- a/libpthread/nptl/forward.c
+++ b/libpthread/nptl/forward.c
@@ -160,7 +160,7 @@ FORWARD2(__pthread_unwind,
/* We cannot call abort() here. */
INTERNAL_SYSCALL_DECL (err);
INTERNAL_SYSCALL (kill, err, 1, SIGKILL);
-#if defined __GNUC__ && (!__GNUC_PREREQ (4, 4) && !__GNUC_PREREQ (4, 2))
+#if __GNUC_PREREQ(4, 5)
__builtin_unreachable();
#else
while(1);
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
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 4f0f1d754ff5e1e7076ebf2bf02b18fc357bc51c (commit)
from bb7d04b2ba168a051d288ee82c24faf68a433ed2 (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 4f0f1d754ff5e1e7076ebf2bf02b18fc357bc51c
Author: mirabilos <tg(a)mirbsd.org>
Date: Sat Jul 25 18:51:26 2015 +0200
fix inline asm changing the stack pointer leading to segfaults problem
-----------------------------------------------------------------------
Summary of changes:
libc/sysdeps/linux/i386/brk.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/libc/sysdeps/linux/i386/brk.c b/libc/sysdeps/linux/i386/brk.c
index c2c9327..a513886 100644
--- a/libc/sysdeps/linux/i386/brk.c
+++ b/libc/sysdeps/linux/i386/brk.c
@@ -1,6 +1,7 @@
/* brk system call for Linux/i386.
Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
+ Copyright (c) 2015 mirabilos <tg(a)mirbsd.org>
+ This file is part of uclibc-ng, derived from the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -27,15 +28,18 @@ int brk(void *addr)
{
void *newbrk;
- /* %ebx is used in PIC code, need to save/restore it manually.
- * gcc won't do it for us if we will request it in constraints
+ /*
+ * EBC is used in PIC code, we need to save/restore it manually.
+ * Unfortunately, GCC won't do that for us even if we use con-
+ * straints, and we cannot push it either as ESP clobbers are
+ * silently ignored, but EDX is preserved, so it's scratch space.
*/
- __asm__("pushl %%ebx\n"
- "movl %2, %%ebx\n"
- "int $0x80\n"
- "popl %%ebx\n"
+ __asm__("xchgl %%edx,%%ebx"
+ "\n int $0x80"
+ "\n xchgl %%edx,%%ebx"
: "=a" (newbrk)
- : "0" (__NR_brk), "g" (addr)
+ : "0" (__NR_brk), "d" (addr)
+ : "cc"
);
__curbrk = newbrk;
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
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 d8e6976a83cdd0ecac260de3afcb1973db8dffb0 (commit)
from 76513cbe06ec45d6cf0310c00eaf71d3250ed57f (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 d8e6976a83cdd0ecac260de3afcb1973db8dffb0
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Sat Jul 25 17:06:59 2015 +0200
set title correctly, as mentioned by tg
-----------------------------------------------------------------------
Summary of changes:
extra/Configs/Config.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index 8d74ada..5166efb 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -3,7 +3,7 @@
# see extra/config/Kconfig-language.txt
#
-mainmenu "uClibc $VERSION C Library Configuration"
+mainmenu "uClibc-ng $VERSION C Library Configuration"
config DESIRED_TARGET_ARCH
string
hooks/post-receive
--
uClibc-ng - small C library for embedded systems