please backport this to jethro as well. with out this uclibc images won't build.
On Wed, Oct 14, 2015 at 5:44 PM, Khem Raj <[email protected]> wrote: > An agressive optimization in gcc5 meant that we get linking errors > with uclibc build, this patch fixes the issue by letting gcc know > that these funcitons are used. > > Change-Id: I8ecf3999a0855b3bbf4bc2df576be5351f9be5b0 > Signed-off-by: Khem Raj <[email protected]> > --- > meta/recipes-core/uclibc/uclibc-git.inc | 1 + > ...zes-away-the-write-only-static-functions-.patch | 51 > ++++++++++++++++++++++ > 2 files changed, 52 insertions(+) > create mode 100644 > meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch > > diff --git a/meta/recipes-core/uclibc/uclibc-git.inc > b/meta/recipes-core/uclibc/uclibc-git.inc > index 14a577f..9e3d644 100644 > --- a/meta/recipes-core/uclibc/uclibc-git.inc > +++ b/meta/recipes-core/uclibc/uclibc-git.inc > @@ -16,5 +16,6 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master \ > file://0005-Always-use-O2-for-compiling-fork.c.patch \ > file://0006-ldso-limited-support-for-ORIGIN-in-rpath.patch \ > file://0007-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch > \ > + > file://0001-gcc5-optimizes-away-the-write-only-static-functions-.patch \ > " > S = "${WORKDIR}/git" > diff --git > a/meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch > > b/meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch > new file mode 100644 > index 0000000..e622f87 > --- /dev/null > +++ > b/meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch > @@ -0,0 +1,51 @@ > +From 2659fb25d32f4b29c1c96aa5730fe40e19d53ab0 Mon Sep 17 00:00:00 2001 > +From: Khem Raj <[email protected]> > +Date: Wed, 14 Oct 2015 17:38:37 -0700 > +Subject: [PATCH] gcc5 optimizes away the write only static functions and we > + end up with > + > + librt/librt_so.a(rt-unwind-resume.oS): In function `_Unwind_Resume': > + rt-unwind-resume.c:(.text+0x3c): undefined reference to `libgcc_s_resume' > + collect2: error: ld returned 1 exit status > + make[2]: *** [lib/librt.so] Error 1 > + > +marking these functions explicitly used with __attribute_used__ avoids > +that optimization. > + > +Signed-off-by: Khem Raj <[email protected]> > +--- > +Upstream-Status: Pending > + > + libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c | 2 +- > + libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c | 2 +- > + 2 files changed, 2 insertions(+), 2 deletions(-) > + > +diff --git > a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c > b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c > +index f4d6f41..0c2edd7 100644 > +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c > ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c > +@@ -27,7 +27,7 @@ > + #define __libc_fatal(x) {/*write(STDERR_FILENO, x, strlen(x));*/ > abort();} > + > + static void *libgcc_s_handle; > +-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); > ++static void (*libgcc_s_resume) (struct _Unwind_Exception *exc) > __attribute_used__; > + static _Unwind_Reason_Code (*libgcc_s_personality) > + (_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *); > + static _Unwind_Reason_Code (*libgcc_s_forcedunwind) > +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c > b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c > +index f9a4ffb..f0c3047 100644 > +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c > ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c > +@@ -25,7 +25,7 @@ > + #define __libc_dlclose dlclose > + #define __libc_fatal(x) {/*write(STDERR_FILENO, x, strlen(x));*/ > abort();} > + > +-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); > ++static void (*libgcc_s_resume) (struct _Unwind_Exception *exc) > __attribute_used__; > + static _Unwind_Reason_Code (*libgcc_s_personality) > + (_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *); > + > +-- > +2.6.1 > + > -- > 2.6.1 > -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
