This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


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

[PATCH] sparc64 GLIBC_2.2+


Hi!

Ok, glibc with this patch runs for 3 days in my sparc64 chroot just fine, so
I think it is ready for inclusion.
Note to everybody using sparc64 glibc (=myself, Ben Collins, have I missed
anybody?), glibc will be no longer binary compatible with older versions.

2000-06-29  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/fpu/fclrexcpt.c: Use SHLIB_COMPAT, compat_symbol and
	versioned_symbol.
	* sysdeps/sparc/fpu/fesetenv.c: Likewise.
	* sysdeps/sparc/fpu/feupdateenv.c: Likewise.
	* sysdeps/sparc/fpu/fgetexcptflg.c: Likewise.
	* sysdeps/sparc/fpu/fraiseexcpt.c: Likewise.
	* sysdeps/sparc/fpu/fsetexcptflg.c: Likewise.
	* sysdeps/sparc/fpu/fegetenv.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
	* shlib-versions: Make sparc64 GLIBC_2.2+ only.

linuxthreads/:
	* shlib-versions: Make sparc64 GLIBC_2.2+ only.

--- libc/linuxthreads/shlib-versions.jj	Mon Jun 26 04:23:55 2000
+++ libc/linuxthreads/shlib-versions	Mon Jun 26 04:38:05 2000
@@ -1,4 +1,5 @@
 # Xavier Leroy's Linux clone based thread library.
 mips.*-.*-linux.*	libpthread=0		GLIBC_2.0 GLIBC_2.2
+sparc64-.*-linux.*	libpthread=0		GLIBC_2.2
 sh.*-.*-linux.*		libpthread=0		GLIBC_2.2
 .*-.*-linux.*		libpthread=0
--- libc/sysdeps/sparc/fpu/fclrexcpt.c.jj	Wed Mar 22 16:36:10 2000
+++ libc/sysdeps/sparc/fpu/fclrexcpt.c	Mon Jun 26 04:38:05 2000
@@ -18,6 +18,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <fenv.h>
+#include <shlib-compat.h>
 
 int
 __feclearexcept (int excepts)
@@ -33,6 +34,10 @@ __feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feclearexcept, __old_feclearexcept)
-symbol_version (__old_feclearexcept, feclearexcept, GLIBC_2.1);
-default_symbol_version (__feclearexcept, feclearexcept, GLIBC_2.2);
+compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
+#endif
+
+versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
--- libc/sysdeps/sparc/fpu/fesetenv.c.jj	Wed Mar 22 16:36:10 2000
+++ libc/sysdeps/sparc/fpu/fesetenv.c	Mon Jun 26 04:38:05 2000
@@ -18,6 +18,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <fenv.h>
+#include <shlib-compat.h>
 
 int
 __fesetenv (const fenv_t *envp)
@@ -44,6 +45,10 @@ __fesetenv (const fenv_t *envp)
   /* Success.  */
   return 0;
 }
+
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetenv, __old_fesetenv)
-symbol_version (__old_fesetenv, fesetenv, GLIBC_2.1);
-default_symbol_version (__fesetenv, fesetenv, GLIBC_2.2);
+compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
+#endif
+
+versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
--- libc/sysdeps/sparc/fpu/feupdateenv.c.jj	Wed Mar 22 16:36:10 2000
+++ libc/sysdeps/sparc/fpu/feupdateenv.c	Mon Jun 26 04:38:05 2000
@@ -18,6 +18,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <fenv.h>
+#include <shlib-compat.h>
 
 int
 __feupdateenv (const fenv_t *envp)
@@ -39,6 +40,10 @@ __feupdateenv (const fenv_t *envp)
   /* Success.  */
   return 0;
 }
+
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feupdateenv, __old_feupdateenv)
-symbol_version (__old_feupdateenv, feupdateenv, GLIBC_2.1);
-default_symbol_version (__feupdateenv, feupdateenv, GLIBC_2.2);
+compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
+#endif
+
+versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);
--- libc/sysdeps/sparc/fpu/fgetexcptflg.c.jj	Wed Mar 22 16:36:10 2000
+++ libc/sysdeps/sparc/fpu/fgetexcptflg.c	Mon Jun 26 04:38:05 2000
@@ -18,6 +18,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <fenv.h>
+#include <shlib-compat.h>
 
 int
 __fegetexceptflag (fexcept_t *flagp, int excepts)
@@ -32,6 +33,10 @@ __fegetexceptflag (fexcept_t *flagp, int
   /* Success.  */
   return 0;
 }
+
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fegetexceptflag, __old_fegetexceptflag)
-symbol_version (__old_fegetexceptflag, fegetexceptflag, GLIBC_2.1);
-default_symbol_version (__fegetexceptflag, fegetexceptflag, GLIBC_2.2);
+compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1);
+#endif
+
+versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2);
--- libc/sysdeps/sparc/fpu/fraiseexcpt.c.jj	Wed Mar 22 16:36:10 2000
+++ libc/sysdeps/sparc/fpu/fraiseexcpt.c	Mon Jun 26 04:38:05 2000
@@ -19,6 +19,7 @@
 
 #include <fenv.h>
 #include <math.h>
+#include <shlib-compat.h>
 
 int
 __feraiseexcept (int excepts)
@@ -59,6 +60,10 @@ __feraiseexcept (int excepts)
   /* Success.  */
   return 0;
 }
+
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feraiseexcept, __old_feraiseexcept)
-symbol_version (__old_feraiseexcept, feraiseexcept, GLIBC_2.1);
-default_symbol_version (__feraiseexcept, feraiseexcept, GLIBC_2.2);
+compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
+#endif
+
+versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
--- libc/sysdeps/sparc/fpu/fsetexcptflg.c.jj	Wed Mar 22 16:36:10 2000
+++ libc/sysdeps/sparc/fpu/fsetexcptflg.c	Mon Jun 26 04:38:05 2000
@@ -19,6 +19,7 @@
 
 #include <fenv.h>
 #include <math.h>
+#include <shlib-compat.h>
 
 int
 __fesetexceptflag (const fexcept_t *flagp, int excepts)
@@ -35,6 +36,10 @@ __fesetexceptflag (const fexcept_t *flag
   /* Success.  */
   return 0;
 }
+
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetexceptflag, __old_fesetexceptflag)
-symbol_version (__old_fesetexceptflag, fesetexceptflag, GLIBC_2.1);
-default_symbol_version (__fesetexceptflag, fesetexceptflag, GLIBC_2.2);
+compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
+#endif
+
+versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);
--- libc/sysdeps/sparc/fpu/fegetenv.c.jj	Wed Mar 22 16:36:10 2000
+++ libc/sysdeps/sparc/fpu/fegetenv.c	Mon Jun 26 04:38:05 2000
@@ -18,6 +18,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <fenv.h>
+#include <shlib-compat.h>
 
 int
 __fegetenv (fenv_t *envp)
@@ -27,6 +28,10 @@ __fegetenv (fenv_t *envp)
   /* Success.  */
   return 0;
 }
+
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fegetenv, __old_fegetenv)
-symbol_version (__old_fegetenv, fegetenv, GLIBC_2.1);
-default_symbol_version (__fegetenv, fegetenv, GLIBC_2.2);
+compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
+#endif
+
+versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/Versions.jj	Mon Jun 26 04:41:28 2000
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/Versions	Mon Jun 26 04:41:23 2000
@@ -0,0 +1,8 @@
+libc {
+  GLIBC_2.0 {
+    # Exception handling support functions from libgcc
+    __register_frame; __register_frame_table; __deregister_frame;
+    __register_frame_info; __deregister_frame_info; __frame_state_for;
+    __register_frame_info_table;
+  }
+}
--- libc/shlib-versions.jj	Mon Jun 26 04:23:44 2000
+++ libc/shlib-versions	Mon Jun 26 04:38:05 2000
@@ -19,6 +19,7 @@
 # The interface to -lm depends mostly only on cpu, not on operating system.
 i.86-.*-.*		libm=6
 m68k-.*-.*		libm=6
+sparc64-.*-linux.*	libm=6			GLIBC_2.2
 sparc.*-.*-.*		libm=6
 alpha.*-.*-linux.*	libm=6.1
 alpha.*-.*-.*		libm=6
@@ -35,6 +36,7 @@ alpha.*-.*-linux.*	libc=6.1
 mips.*-.*-linux.*	libc=6			GLIBC_2.0 GLIBC_2.2
 ia64-.*-.*		libc=6.1		GLIBC_2.2
 sh.*-.*-.*              libc=6                  GLIBC_2.2
+sparc64-.*-linux.*	libc=6			GLIBC_2.2
 .*-.*-linux.*		libc=6
 
 # libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release.
@@ -52,7 +54,7 @@ sh.*-.*-.*              libc=6          
 
 # The dynamic loader also requires different names.
 i.86-.*-linux.*		ld=ld-linux.so.2
-sparc64-.*-linux.*	ld=ld-linux.so.2
+sparc64-.*-linux.*	ld=ld-linux.so.2	GLIBC_2.2
 sparc.*-.*-linux.*	ld=ld-linux.so.2
 alpha.*-.*-linux.*	ld=ld-linux.so.2
 arm.*-.*-linux.*	ld=ld-linux.so.2


	Jakub

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