This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix missing long-double compat symbols on sparc v9.


As I said I've started working on adding sparc entries to the
abilist files.

And it has already bourne fruit :-)

When I added the various libm sparc optimizations, I forgot to add the
necessary long-double compat symbols.

Committed to master.

	* 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 ++++++++++++++++++
 .../sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S   |    7 +++++++
 .../sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S  |    7 +++++++
 .../sparc/sparc32/sparcv9/fpu/multiarch/s_fmax.S   |    7 +++++++
 .../sparc/sparc32/sparcv9/fpu/multiarch/s_fmin.S   |    7 +++++++
 .../sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S |    7 +++++++
 .../sparc/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 080cadd..7d2d108 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2012-04-26  David S. Miller  <davem@davemloft.net>
+
+	* 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  <davem@davemloft.net>
 
 	* 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 fa4c7c3..835703f 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 <sparc-ifunc.h>
+#include <math_ldbl_opt.h>
 
 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 6ae9947..37aeb43 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 <sparc-ifunc.h>
+#include <math_ldbl_opt.h>
 
 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 d5e59d8..e996860 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 <sparc-ifunc.h>
+#include <math_ldbl_opt.h>
 
 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 b2aec1b..b7ea51f 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 <sparc-ifunc.h>
+#include <math_ldbl_opt.h>
 
 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 a904aec..fd23041 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 <sparc-ifunc.h>
+#include <math_ldbl_opt.h>
 
 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 cc980eb..de893fa 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 <sparc-ifunc.h>
+#include <math_ldbl_opt.h>
 
 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 1d940e3..90564e8 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_ceil.S
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <math_ldbl_opt.h>
 
 	/* 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 bd94c7f..9ac3f50 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_floor.S
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <math_ldbl_opt.h>
 
 	/* 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 351eaac..a6ef860 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmax.S
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <math_ldbl_opt.h>
 
 #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 059f15a..4266a08 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fmin.S
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <math_ldbl_opt.h>
 
 #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 3122528..a1c0c61 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <math_ldbl_opt.h>
 
 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 8ec9b4d..5538390 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <math_ldbl_opt.h>
 
 	/* 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 062faba..2fd0695 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrint.S
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <math_ldbl_opt.h>
 
 	/* 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 9f9fddd..32cfce8 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <math_ldbl_opt.h>
 
 	/* 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
-- 
1.7.9.5


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]