diff mbox

[1/2] uclibc: unbreak SH & SPARC

Message ID 1429217745-3205-1-git-send-email-gustavo@zacarias.com.ar
State Accepted
Headers show

Commit Message

Gustavo Zacarias April 16, 2015, 8:55 p.m. UTC
The patch from commit 200aad4f3206c9f151f15922dd02b01f474a5503 broke sh
and sparc builds.
Add and adjust a patch from uClibc master that fixes this.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 ...-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

Comments

Thomas Petazzoni April 18, 2015, 1:36 p.m. UTC | #1
Dear Gustavo Zacarias,

On Thu, 16 Apr 2015 17:55:44 -0300, Gustavo Zacarias wrote:
> The patch from commit 200aad4f3206c9f151f15922dd02b01f474a5503 broke sh
> and sparc builds.
> Add and adjust a patch from uClibc master that fixes this.
> 
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>  ...-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
Gustavo Zacarias April 18, 2015, 9:05 p.m. UTC | #2
On 04/18/2015 10:36 AM, Thomas Petazzoni wrote:

> 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.
Thomas Petazzoni April 18, 2015, 9:31 p.m. UTC | #3
Dear Gustavo Zacarias,

On Sat, 18 Apr 2015 18:05:35 -0300, Gustavo Zacarias wrote:

> 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
diff mbox

Patch

diff --git a/package/uclibc/0.9.33.2/0070-libm-honor-NO_LONG_DOUBLE-in-ldouble_wrappers.patch b/package/uclibc/0.9.33.2/0070-libm-honor-NO_LONG_DOUBLE-in-ldouble_wrappers.patch
new file mode 100644
index 0000000..1b6ea6d
--- /dev/null
+++ b/package/uclibc/0.9.33.2/0070-libm-honor-NO_LONG_DOUBLE-in-ldouble_wrappers.patch
@@ -0,0 +1,89 @@ 
+From 730db44f0824f505a31822e250b9f04b9f8e7a1b Mon Sep 17 00:00:00 2001
+From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+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 <rep.dot.nop@gmail.com>
+[Gustavo: adapt to 0.9.33.2]
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ 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
+