From 33f244f40b38fda964ccbfd4fa928a3d3d738f53 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Thu, 26 Apr 2012 02:50:20 -0700 Subject: [PATCH] Fix missing long-double compat symbols on sparc v9. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S: Generate long-double compat symbols. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S: Likewise. --- ChangeLog | 18 ++++++++++++++++++ .../sparc32/sparcv9/fpu/multiarch/s_ceil.S | 7 +++++++ .../sparc32/sparcv9/fpu/multiarch/s_floor.S | 7 +++++++ .../sparc32/sparcv9/fpu/multiarch/s_fmax.S | 7 +++++++ .../sparc32/sparcv9/fpu/multiarch/s_fmin.S | 7 +++++++ .../sparc32/sparcv9/fpu/multiarch/s_llrint.S | 7 +++++++ .../sparc32/sparcv9/fpu/multiarch/s_rint.S | 7 +++++++ sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S | 5 +++++ sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S | 5 +++++ sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S | 5 +++++ sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S | 5 +++++ sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S | 8 ++++++++ sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S | 5 +++++ sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S | 5 +++++ sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S | 5 +++++ 15 files changed, 103 insertions(+) diff --git a/ChangeLog b/ChangeLog index 080caddf553..7d2d1089d4f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2012-04-26 David S. Miller + + * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S: Generate + long-double compat symbols. + * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S: Likewise. + 2012-04-25 David S. Miller * sysdeps/sparc/sparc32/bits/atomic.h: Include sysdep.h to get diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S index fa4c7c353fd..835703fb9bc 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S @@ -1,11 +1,18 @@ #include +#include SPARC_ASM_VIS3_IFUNC(ceil) weak_alias (__ceil, ceil) +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __ceil, ceill, GLIBC_2_0) +#endif + # undef weak_alias # define weak_alias(a, b) +# undef compat_symbol +# define compat_symbol(a, b, c, d) #define __ceil __ceil_generic diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S index 6ae9947a7af..37aeb43b909 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S @@ -1,11 +1,18 @@ #include +#include SPARC_ASM_VIS3_IFUNC(floor) weak_alias (__floor, floor) +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __floor, floorl, GLIBC_2_0) +#endif + # undef weak_alias # define weak_alias(a, b) +# undef compat_symbol +# define compat_symbol(a, b, c, d) #define __floor __floor_generic diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S index d5e59d8d1ed..e9968604852 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S @@ -1,11 +1,18 @@ #include +#include SPARC_ASM_VIS3_IFUNC(fmax) weak_alias (__fmax, fmax) +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __fmax, fmaxl, GLIBC_2_1); +#endif + # undef weak_alias # define weak_alias(a, b) +# undef compat_symbol +# define compat_symbol(a, b, c, d) #define __fmax __fmax_generic diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S index b2aec1bbc00..b7ea51f4758 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S @@ -1,11 +1,18 @@ #include +#include SPARC_ASM_VIS3_IFUNC(fmin) weak_alias (__fmin, fmin) +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __fmin, fminl, GLIBC_2_1); +#endif + # undef weak_alias # define weak_alias(a, b) +# undef compat_symbol +# define compat_symbol(a, b, c, d) #define __fmin __fmin_generic diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S index a904aeca2a4..fd230414045 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S @@ -1,4 +1,5 @@ #include +#include SPARC_ASM_VIS3_IFUNC(llrint) @@ -7,10 +8,16 @@ weak_alias (__llrint, llrint) strong_alias (__llrint, __lllrint) weak_alias (__lllrint, lllrint) +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __llrint, llrintl, GLIBC_2_1) +#endif + # undef weak_alias # define weak_alias(a, b) # undef strong_alias # define strong_alias(a, b) +# undef compat_symbol +# define compat_symbol(a, b, c, d) #define __llrint __llrint_generic diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S index cc980eb8c7c..de893faebff 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S @@ -1,11 +1,18 @@ #include +#include SPARC_ASM_VIS3_IFUNC(rint) weak_alias (__rint, rint) +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __rint, rintl, GLIBC_2_0) +#endif + # undef weak_alias # define weak_alias(a, b) +# undef compat_symbol +# define compat_symbol(a, b, c, d) #define __rint __rint_generic diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S index 1d940e3ac76..90564e80215 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S @@ -18,6 +18,7 @@ . */ #include +#include /* Since changing the rounding mode is extremely expensive, we try to round up using a method that is rounding mode @@ -85,3 +86,7 @@ ENTRY (__ceil) for %f0, SIGN_BIT, %f0 END (__ceil) weak_alias (__ceil, ceil) + +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __ceil, ceill, GLIBC_2_0) +#endif diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S index bd94c7fd091..9ac3f5022ee 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S @@ -18,6 +18,7 @@ . */ #include +#include /* Since changing the rounding mode is extremely expensive, we try to round up using a method that is rounding mode @@ -85,3 +86,7 @@ ENTRY (__floor) for %f0, SIGN_BIT, %f0 END (__floor) weak_alias (__floor, floor) + +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __floor, floorl, GLIBC_2_0) +#endif diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S index 351eaaca699..a6ef860af28 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S @@ -18,6 +18,7 @@ . */ #include +#include #define SIGN_BIT %f12 /* -0.0 */ @@ -38,3 +39,7 @@ ENTRY (__fmax) fandnot2 %f0, %f4, %f0 END (__fmax) weak_alias (__fmax, fmax) + +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __fmax, fmaxl, GLIBC_2_1); +#endif diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S index 059f15a612d..4266a087e7b 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S @@ -18,6 +18,7 @@ . */ #include +#include #define SIGN_BIT %f12 /* -0.0 */ @@ -38,3 +39,7 @@ ENTRY (__fmin) for %f0, %f4, %f0 END (__fmin) weak_alias (__fmin, fmin) + +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __fmin, fminl, GLIBC_2_1); +#endif diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S index 3122528a065..a1c0c61766f 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S @@ -17,6 +17,7 @@ . */ #include +#include ENTRY (__isnan) sethi %hi(0x7ff00000), %g1 @@ -30,3 +31,10 @@ ENTRY (__isnan) END (__isnan) hidden_def (__isnan) weak_alias (__isnan, isnan) + +#ifndef IS_IN_libm +# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0); +compat_symbol (libc, isnan, isnanl, GLIBC_2_0); +# endif +#endif diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S index 8ec9b4dcb4b..55383907e7d 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S @@ -18,6 +18,7 @@ . */ #include +#include /* We pop constants into the FPU registers using the incoming argument stack slots, since this avoid having to use any PIC @@ -65,3 +66,7 @@ ENTRY (__llrint) ldd [%sp + 72], %o0 END (__llrint) weak_alias (__llrint, llrint) + +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __llrint, llrintl, GLIBC_2_1) +#endif diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S index 062faba1708..2fd06955529 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S @@ -18,6 +18,7 @@ . */ #include +#include /* We pop constants into the FPU registers using the incoming argument stack slots, since this avoid having to use any PIC @@ -65,3 +66,7 @@ ENTRY (__lrint) ld [%sp + 72], %o0 END (__lrint) weak_alias (__lrint, lrint) + +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __lrint, lrintl, GLIBC_2_1) +#endif diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S index 9f9fddd462a..32cfce8ee97 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S @@ -18,6 +18,7 @@ . */ #include +#include /* We pop constants into the FPU registers using the incoming argument stack slots, since this avoid having to use any PIC @@ -62,3 +63,7 @@ ENTRY (__rint) for %f0, SIGN_BIT, %f0 END (__rint) weak_alias (__rint, rint) + +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __rint, rintl, GLIBC_2_0) +#endif -- 2.39.5