diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2015-03-24 00:11:47 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2015-03-24 00:11:47 +0100 |
commit | 730db44f0824f505a31822e250b9f04b9f8e7a1b (patch) | |
tree | dce88cad39bf3bcb40d2c9a5df671f9b4961db50 | |
parent | 272e4fa4d38440d5c01259fce7d74f8c0a9d300f (diff) |
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>
-rw-r--r-- | extra/Configs/Config.in.arch | 2 | ||||
-rw-r--r-- | ldso/ldso/sh/dl-syscalls.h | 2 | ||||
-rw-r--r-- | 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 68e03bf9e..0dae84b06 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 || TARGET_xtensa + 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 f9f13c7fa..b99a9b5a0 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 b4215cbf3..840293fe6 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 */ |