uclibc: unbreak SH & SPARC
PATCH 1/2 uclibc: unbreak SH & SPARC
The patch from commit 200aad4f3206c9f151f15922dd02b01f474a5503 broke sh and sparc builds.
Add and adjust a patch from uClibc master that fixes this.
--- ...-honor-NO_LONG_DOUBLE-in-ldouble_wrappers.patch | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 package/uclibc/0.9.33.2/0070-libm-honor-NO_LONG_DOUBLE-in-ldouble_wrappers.patch
package/uclibc/0.9.33.2/0070-libm-honor-NO_LONG_DOUBLE-in-ldouble_wrappers.patch new file +89 -0
@@ -0,0 +1,89 @@ +From 730db44f0824f505a31822e250b9f04b9f8e7a1b Mon Sep 17 00:00:00 2001 +From: Bernhard Reutner-Fischer <[email protected]> +Date: Tue, 24 Mar 2015 00:11:47 +0100 +Subject: [PATCH] libm: honor NO_LONG_DOUBLE in ldouble_wrappers + +Fixes SH build breakage due to attempts to define hidden defs for +unavailable long double functions. + +Signed-off-by: Bernhard Reutner-Fischer <[email protected]> +[Gustavo: adapt to 0.9.33.2] +Signed-off-by: Gustavo Zacarias <[email protected]> +--- + extra/Configs/Config.in.arch | 2 +- + ldso/ldso/sh/dl-syscalls.h | 2 +- + libm/ldouble_wrappers.c | 15 +++++++++------ + 3 files changed, 11 insertions(+), 8 deletions(-) + +diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch +index 68e03bf..0dae84b 100644 +--- a/extra/Configs/Config.in.arch ++++ b/extra/Configs/Config.in.arch +@@ -191,7 +191,7 @@ config UCLIBC_HAS_FENV + config UCLIBC_HAS_LONG_DOUBLE_MATH + bool "Enable long double support" + depends on DO_C99_MATH +- depends on TARGET_i386 || TARGET_m68k || TARGET_sparc || TARGET_x86_64 || TARGET_powerpc || TARGET_sh || TARGET_microblaze ++ depends on TARGET_aarch64 || TARGET_alpha || TARGET_i386 || TARGET_ia64 || TARGET_m68k || TARGET_powerpc || TARGET_s390 || TARGET_sparc || TARGET_tile || TARGET_x86_64 + default y + help + If you want the uClibc math library to contain the full set of C99 +diff --git a/ldso/ldso/sh/dl-syscalls.h b/ldso/ldso/sh/dl-syscalls.h +index f9f13c7..b99a9b5 100644 +--- a/ldso/ldso/sh/dl-syscalls.h ++++ b/ldso/ldso/sh/dl-syscalls.h +@@ -1,4 +1,4 @@ +-#if __GNUC_PREREQ (4, 1) ++#if __GNUC_PREREQ (4, 1) && !__GNUC_PREREQ (4, 9) + #warning !!! gcc 4.1 and later have problems with __always_inline so redefined as inline + # ifdef __always_inline + # undef __always_inline +diff --git a/libm/ldouble_wrappers.c b/libm/ldouble_wrappers.c +index b4215cb..840293f 100644 +--- a/libm/ldouble_wrappers.c ++++ b/libm/ldouble_wrappers.c +@@ -16,27 +16,28 @@ + #include "math.h" + #include <complex.h> + +-#define WRAPPER1(func) \ ++#if !defined __NO_LONG_DOUBLE_MATH ++# define WRAPPER1(func) \ + long double func##l(long double x) \ + { \ + return (long double) func((double) x); \ + } +-#define WRAPPER2(func) \ ++# define WRAPPER2(func) \ + long double func##l(long double x, long double y) \ + { \ + return (long double) func((double) x, (double) y); \ + } +-#define int_WRAPPER1(func) \ ++# define int_WRAPPER1(func) \ + int func##l(long double x) \ + { \ + return func((double) x); \ + } +-#define long_WRAPPER1(func) \ ++# define long_WRAPPER1(func) \ + long func##l(long double x) \ + { \ + return func((double) x); \ + } +-#define long_long_WRAPPER1(func) \ ++# define long_long_WRAPPER1(func) \ + long long func##l(long double x) \ + { \ + return func((double) x); \ +@@ -447,4 +448,6 @@ int_WRAPPER1(__isinf) + libm_hidden_def(__isinfl) + # endif + +-#endif ++#endif /* __DO_C99_MATH__ */ ++ ++#endif /* __NO_LONG_DOUBLE_MATH */ +-- +2.0.5 +
Signature · 1 line
2.0.5
PATCH 2/2 uclibc: drop -ng 1.0.0 stray patch
--- ...-guard-tcb-offsets.h-include-with-RESET_P.patch | 31 ---------------------- 1 file changed, 31 deletions(-) delete mode 100644 package/uclibc/1.0.0/0001-sparc-clone.S-guard-tcb-offsets.h-include-with-RESET_P.patch
package/uclibc/1.0.0/0001-sparc-clone.S-guard-tcb-offsets.h-include-with-RESET_P.patch deleted +0 -31
@@ -1,31 +0,0 @@ -From 857420a3271dc5bbddbe45a9e9878b9dc88fd143 Mon Sep 17 00:00:00 2001 -From: Gustavo Zacarias <[email protected]> -Date: Tue, 3 Mar 2015 14:56:17 -0300 -Subject: [PATCH] sparc/clone.S: guard tcb-offsets.h include with RESET_PID - -Status: upstream [uClibc] - -Otherwise we have a broken scenario with non-threading builds. - -Signed-off-by: Gustavo Zacarias <[email protected]> ---- - libc/sysdeps/linux/sparc/clone.S | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/libc/sysdeps/linux/sparc/clone.S b/libc/sysdeps/linux/sparc/clone.S -index 8d9da5a..1d0e3e6 100644 ---- a/libc/sysdeps/linux/sparc/clone.S -+++ b/libc/sysdeps/linux/sparc/clone.S -@@ -22,7 +22,9 @@ - - #include <asm/errno.h> - #include <asm/unistd.h> -+#ifdef RESET_PID - #include <tcb-offsets.h> -+#endif - #include <sysdep.h> - - #define CLONE_VM 0x00000100 --- -2.0.5 -
Signature · 1 line
2.0.5
Thomas Petazzoni
AppliedPATCH 2/2 uclibc: drop -ng 1.0.0 stray patch
Dear Gustavo Zacarias,
Quoted 5 lines · Gustavo Zacarias
Signed-off-by Gustavo Zacarias <[email protected]>--- ...-guard-tcb-offsets.h-include-with-RESET_P.patch | 31 ---------------------- 1 file changed, 31 deletions(-) delete mode 100644 package/uclibc/1.0.0/0001-sparc-clone.S-guard-tcb-offsets.h-include-with-RESET_P.patch
Applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Thomas Petazzoni
AppliedPATCH 1/2 uclibc: unbreak SH & SPARC
In reply to Gustavo ZacariasDear Gustavo Zacarias,
Quoted 9 lines · Gustavo Zacarias
The patch from commit
200aad4f3206c9f151f15922dd02b01f474a5503broke sh and sparc builds.
Add and adjust a patch from uClibc master that fixes this.Signed-off-by Gustavo Zacarias <[email protected]>--- ...-honor-NO_LONG_DOUBLE-in-ldouble_wrappers.patch | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 package/uclibc/0.9.33.2/0070-libm-honor-NO_LONG_DOUBLE-in-ldouble_wrappers.patch
Applied, thanks.
Waldemar, is this patch also needed for uClibc-ng ?
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/2 uclibc: unbreak SH & SPARC
Quoted 3 lines · Thomas Petazzoni
Applied, thanks.
Waldemar, is this patch also needed for uClibc-ng ?
1.0.1 didn't have the offending patch applied, and 1.0.2 already includes it, so no need to touch anything for -ng. Regards.
PATCH 1/2 uclibc: unbreak SH & SPARC
Dear Gustavo Zacarias,
Quoted 2 lines · Gustavo Zacarias
1.0.1 didn't have the offending patch applied, and 1.0.2 already includes it, so no need to touch anything for -ng.
Great, thanks for the confirmation!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com