This is the mail archive of the libc-alpha@sources.redhat.com 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] Fixup PPC symbol versioning for libgcc symbols


Hi,

phew, this was hard, but after finding my way thru a maze of binutils bugs and 
misinformations, here is finally a patch that does what we want on PPC, 
namely not to export any libgcc symbols from glibc with linktime reference, 
yet keeping the backwards compatibility with shared libs compiled against a 
pre-.hidden libgcc. I've attached patches for mainline and 2-2, both tested 
with gcc-2.95.4 and gcc-3.[12]. I also rebuilt loads of packages against it 
without problems.

When building gcc-3 against a fixed glibc, binutils-2.13.90.0.4 or later is 
needed, otherwise libgcc_s may contain unversioned symbols. I will add a 
platform statement to the gcc instructions soon.

Uli, sorry for the number iterations on this issue, but I was new to symbol 
versioning...

Thanks to HJ for fixing all these binutils oddities!

Franz.


	* sysdeps/powerpc/Makefile: Add HAVE_DOT_HIDDEN to CPPFLAGS for
	divdi3.c and libgcc-compat.S.
	* sysdeps/powerpc/libgcc-compat.c: Delete, optimize to ...
	* sysdeps/powerpc/libgcc-compat.S: New file.
	* sysdeps/powerpc/divdi3.c: New file, version and hide symbols of the generic
	version.
	* sysdeps/powerpc/Versions: Add forgotten symbols.

--- sysdeps/powerpc/Makefile~	Tue May 21 02:47:31 2002
+++ sysdeps/powerpc/Makefile	Wed Aug 14 02:00:00 2002
@@ -37,6 +37,10 @@ CFLAGS-gmon-start.o = -G0
 endif
 ifeq (yes,$(build-shared))
 # Compatibility
+ifeq (yes,$(have-protected))
+CPPFLAGS-divdi3.c = -DHAVE_DOT_HIDDEN
+CPPFLAGS-libgcc-compat.S = -DHAVE_DOT_HIDDEN
+endif
 sysdep_routines += divdi3 libgcc-compat
 shared-only-routines += divdi3 libgcc-compat
 endif
--- sysdeps/powerpc/Versions.~1~	Mon May 20 15:01:20 2002
+++ sysdeps/powerpc/Versions	Mon Aug  5 15:01:16 2002
@@ -6,6 +6,7 @@ libc {
     __ashldi3; __ashrdi3; __lshrdi3;
     __fixdfdi; __fixunsdfdi;
     __fixsfdi; __fixunssfdi;
+    __floatdidf; __floatdisf;
   }
 }
 
--- /dev/null	Thu Oct  4 06:30:44 2001
+++ sysdeps/powerpc/divdi3.c	Wed Aug 14 01:58:28 2002
@@ -0,0 +1,38 @@
+/* 64-bit multiplication and division
+   Copyright (C) 2002
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#define _DIVDI3_C
+#include <sysdeps/wordsize-32/divdi3.c>
+
+INTDEF (__udivdi3);
+INTDEF (__moddi3);
+INTDEF (__umoddi3);
+
+#ifdef HAVE_DOT_HIDDEN
+asm (".hidden __divdi3");
+asm (".hidden __udivdi3");
+asm (".hidden __moddi3");
+asm (".hidden __umoddi3");
+#endif
+
+symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.0);
+symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.0);
+symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.0);
+symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.0);
--- /dev/null	Thu Oct  4 06:30:44 2001
+++ sysdeps/powerpc/libgcc-compat.S	Wed Aug 14 01:56:02 2002
@@ -0,0 +1,144 @@
+/* pre-.hidden libgcc compatibility
+   Copyright (C) 2002 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+	.file	"libgcc-compat.S"
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6)
+
+#define __ashldi3_v_glibc20	INTUSE (__ashldi3)
+#define __ashrdi3_v_glibc20	INTUSE (__ashrdi3)
+#define __lshrdi3_v_glibc20	INTUSE (__lshrdi3)
+#define __cmpdi2_v_glibc20	INTUSE (__cmpdi2)
+#define __ucmpdi2_v_glibc20	INTUSE (__ucmpdi2)
+#define __fixdfdi_v_glibc20	INTUSE (__fixdfdi)
+#define __fixsfdi_v_glibc20	INTUSE (__fixsfdi)
+#define __fixunsdfdi_v_glibc20	INTUSE (__fixunsdfdi)
+#define __fixunssfdi_v_glibc20	INTUSE (__fixunssfdi)
+#define __floatdidf_v_glibc20	INTUSE (__floatdidf)
+#define __floatdisf_v_glibc20	INTUSE (__floatdisf)
+
+	.symver __ashldi3_v_glibc20,__ashldi3@GLIBC_2.0
+	.symver __ashrdi3_v_glibc20,__ashrdi3@GLIBC_2.0
+	.symver __lshrdi3_v_glibc20,__lshrdi3@GLIBC_2.0
+	.symver __cmpdi2_v_glibc20,__cmpdi2@GLIBC_2.0
+	.symver __ucmpdi2_v_glibc20,__ucmpdi2@GLIBC_2.0
+	.symver __fixdfdi_v_glibc20,__fixdfdi@GLIBC_2.0
+	.symver __fixunsdfdi_v_glibc20,__fixunsdfdi@GLIBC_2.0
+	.symver __fixsfdi_v_glibc20,__fixsfdi@GLIBC_2.0
+	.symver __fixunssfdi_v_glibc20,__fixunssfdi@GLIBC_2.0
+	.symver __floatdidf_v_glibc20,__floatdidf@GLIBC_2.0
+	.symver __floatdisf_v_glibc20,__floatdisf@GLIBC_2.0
+
+#ifdef HAVE_DOT_HIDDEN
+	.hidden __ashldi3
+	.hidden __ashrdi3
+	.hidden __lshrdi3
+	.hidden __cmpdi2
+	.hidden __ucmpdi2
+	.hidden __fixdfdi
+	.hidden __fixsfdi
+	.hidden __fixunsdfdi
+	.hidden __fixunssfdi
+	.hidden __floatdidf
+	.hidden __floatdisf
+#endif
+
+	.section	".text"
+
+	.align 2
+	.globl __ashldi3_v_glibc20
+	.type	__ashldi3_v_glibc20,@function
+__ashldi3_v_glibc20:
+	b __ashldi3@local
+.Lfe5:
+	.size	__ashldi3_v_glibc20,.Lfe5-__ashldi3_v_glibc20
+	.align 2
+	.globl __ashrdi3_v_glibc20
+	.type	__ashrdi3_v_glibc20,@function
+__ashrdi3_v_glibc20:
+	b __ashrdi3@local
+.Lfe6:
+	.size	__ashrdi3_v_glibc20,.Lfe6-__ashrdi3_v_glibc20
+	.align 2
+	.globl __lshrdi3_v_glibc20
+	.type	__lshrdi3_v_glibc20,@function
+__lshrdi3_v_glibc20:
+	b __lshrdi3@local
+.Lfe7:
+	.size	__lshrdi3_v_glibc20,.Lfe7-__lshrdi3_v_glibc20
+	.align 2
+	.globl __cmpdi2_v_glibc20
+	.type	__cmpdi2_v_glibc20,@function
+__cmpdi2_v_glibc20:
+	b __cmpdi2@local
+.Lfe8:
+	.size	__cmpdi2_v_glibc20,.Lfe8-__cmpdi2_v_glibc20
+	.align 2
+	.globl __ucmpdi2_v_glibc20
+	.type	__ucmpdi2_v_glibc20,@function
+__ucmpdi2_v_glibc20:
+	b __ucmpdi2@local
+.Lfe9:
+	.size	__ucmpdi2_v_glibc20,.Lfe9-__ucmpdi2_v_glibc20
+	.align 2
+	.globl __fixdfdi_v_glibc20
+	.type	__fixdfdi_v_glibc20,@function
+__fixdfdi_v_glibc20:
+	b __fixdfdi@local
+.Lfe10:
+	.size	__fixdfdi_v_glibc20,.Lfe10-__fixdfdi_v_glibc20
+	.align 2
+	.globl __fixunsdfdi_v_glibc20
+	.type	__fixunsdfdi_v_glibc20,@function
+__fixunsdfdi_v_glibc20:
+	b __fixunsdfdi@local
+.Lfe11:
+	.size	__fixunsdfdi_v_glibc20,.Lfe11-__fixunsdfdi_v_glibc20
+	.align 2
+	.globl __fixsfdi_v_glibc20
+	.type	__fixsfdi_v_glibc20,@function
+__fixsfdi_v_glibc20:
+	b __fixsfdi@local
+.Lfe12:
+	.size	__fixsfdi_v_glibc20,.Lfe12-__fixsfdi_v_glibc20
+	.align 2
+	.globl __fixunssfdi_v_glibc20
+	.type	__fixunssfdi_v_glibc20,@function
+__fixunssfdi_v_glibc20:
+	b __fixunssfdi@local
+.Lfe13:
+	.size	__fixunssfdi_v_glibc20,.Lfe13-__fixunssfdi_v_glibc20
+	.align 2
+	.globl __floatdidf_v_glibc20
+	.type	__floatdidf_v_glibc20,@function
+__floatdidf_v_glibc20:
+	b __floatdidf@local
+.Lfe14:
+	.size	__floatdidf_v_glibc20,.Lfe14-__floatdidf_v_glibc20
+	.align 2
+	.globl __floatdisf_v_glibc20
+	.type	__floatdisf_v_glibc20,@function
+__floatdisf_v_glibc20:
+	b __floatdisf@local
+.Lfe15:
+	.size	__floatdisf_v_glibc20,.Lfe15-__floatdisf_v_glibc20
+
+#endif
--- sysdeps/powerpc/libgcc-compat.c	Tue May 21 02:47:32 2002
+++ /dev/null	Thu Oct  4 06:30:44 2001
@@ -1,113 +0,0 @@
-/* pre-.hidden libgcc compatibility
-   Copyright (C) 2002 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-
-#include <stdint.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6)
-
-extern int64_t __ashldi3 (int64_t, int32_t);
-int64_t INTUSE (__ashldi3) (int64_t u, int32_t b)
-{
-  return __ashldi3 (u, b);
-}
-symbol_version (INTUSE (__ashldi3), __ashldi3, GLIBC_2.0);
-
-
-extern int64_t __ashrdi3 (int64_t, int32_t);
-int64_t INTUSE (__ashrdi3) (int64_t u, int32_t b)
-{
-  return __ashrdi3 (u, b);
-}
-symbol_version (INTUSE (__ashrdi3), __ashrdi3, GLIBC_2.0);
-
-
-extern int64_t __lshrdi3 (int64_t, int32_t);
-int64_t INTUSE (__lshrdi3) (int64_t u, int32_t b)
-{
-  return __lshrdi3 (u, b);
-}
-symbol_version (INTUSE (__lshrdi3), __lshrdi3, GLIBC_2.0);
-
-
-extern int32_t __cmpdi2 (int64_t, int64_t);
-int32_t INTUSE (__cmpdi2) (int64_t u, int64_t v)
-{
-  return __cmpdi2 (u, v);
-}
-symbol_version (INTUSE (__cmpdi2), __cmpdi2, GLIBC_2.0);
-
-
-extern int32_t __ucmpdi2 (int64_t, int64_t);
-int32_t INTUSE (__ucmpdi2) (int64_t u, int64_t v)
-{
-  return __ucmpdi2 (u, v);
-}
-symbol_version (INTUSE (__ucmpdi2), __ucmpdi2, GLIBC_2.0);
-
-
-extern int64_t __fixdfdi (double);
-int64_t INTUSE (__fixdfdi) (double d)
-{
-  return __fixdfdi (d);
-}
-symbol_version (INTUSE (__fixdfdi), __fixdfdi, GLIBC_2.0);
-
-
-extern int64_t __fixunsdfdi (double);
-int64_t INTUSE (__fixunsdfdi) (double d)
-{
-  return __fixunsdfdi (d);
-}
-symbol_version (INTUSE (__fixunsdfdi), __fixunsdfdi, GLIBC_2.0);
-
-
-extern int64_t __fixsfdi (float);
-int64_t INTUSE (__fixsfdi) (float d)
-{
-  return __fixsfdi (d);
-}
-symbol_version (INTUSE (__fixsfdi), __fixsfdi, GLIBC_2.0);
-
-
-extern int64_t __fixunssfdi (float);
-int64_t INTUSE (__fixunssfdi) (float d)
-{
-  return __fixunssfdi (d);
-}
-symbol_version (INTUSE (__fixunssfdi), __fixunssfdi, GLIBC_2.0);
-
-
-extern double __floatdidf (int64_t);
-double INTUSE (__floatdidf) (int64_t u)
-{
-  return __floatdidf (u);
-}
-symbol_version (INTUSE (__floatdidf), __floatdidf, GLIBC_2.0);
-
-
-extern float __floatdisf (int64_t);
-float INTUSE (__floatdisf) (int64_t u)
-{
-  return __floatdisf (u);
-}
-symbol_version (INTUSE (__floatdisf), __floatdisf, GLIBC_2.0);
-
-#endif
--- sysdeps/powerpc/Makefile.~2~	Wed Aug 14 12:05:04 2002
+++ sysdeps/powerpc/Makefile	Wed Aug 14 12:05:04 2002
@@ -37,6 +37,10 @@ CFLAGS-gmon-start.o = -G0
 endif
 ifeq (yes,$(build-shared))
 # Compatibility
+ifeq (yes,$(have-protected))
+CPPFLAGS-divdi3.c = -DHAVE_DOT_HIDDEN
+CPPFLAGS-libgcc-compat.S = -DHAVE_DOT_HIDDEN
+endif
 sysdep_routines += divdi3 libgcc-compat
 shared-only-routines += divdi3 libgcc-compat
 endif
--- /dev/null	Thu Oct  4 06:30:44 2001
+++ sysdeps/powerpc/divdi3.c	Thu Aug 15 04:18:11 2002
@@ -0,0 +1,43 @@
+/* 64-bit multiplication and division
+   Copyright (C) 2002
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#define _DIVDI3_C
+#include <sysdeps/wordsize-32/divdi3.c>
+
+asm (".globl __divdi3_internal");
+asm (".set   __divdi3_internal,__divdi3");
+asm (".globl __udivdi3_internal");
+asm (".set   __udivdi3_internal,__udivdi3");
+asm (".globl __moddi3_internal");
+asm (".set   __moddi3_internal,__moddi3");
+asm (".globl __umoddi3_internal");
+asm (".set   __umoddi3_internal,__umoddi3");
+
+#ifdef HAVE_DOT_HIDDEN
+asm (".hidden __divdi3");
+asm (".hidden __udivdi3");
+asm (".hidden __moddi3");
+asm (".hidden __umoddi3");
+#endif
+
+symbol_version (__divdi3_internal, __divdi3, GLIBC_2.0);
+symbol_version (__udivdi3_internal, __udivdi3, GLIBC_2.0);
+symbol_version (__moddi3_internal, __moddi3, GLIBC_2.0);
+symbol_version (__umoddi3_internal, __umoddi3, GLIBC_2.0);
--- /dev/null	Thu Oct  4 06:30:44 2001
+++ sysdeps/powerpc/libgcc-compat.S	Wed Aug 14 12:05:04 2002
@@ -0,0 +1,148 @@
+/* pre-.hidden libgcc compatibility
+   Copyright (C) 2002 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+	.file	"libgcc-compat.S"
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6)
+
+#ifndef INTUSE
+# define INTUSE(name) name##_internal
+#endif
+
+#define __ashldi3_v_glibc20	INTUSE (__ashldi3)
+#define __ashrdi3_v_glibc20	INTUSE (__ashrdi3)
+#define __lshrdi3_v_glibc20	INTUSE (__lshrdi3)
+#define __cmpdi2_v_glibc20	INTUSE (__cmpdi2)
+#define __ucmpdi2_v_glibc20	INTUSE (__ucmpdi2)
+#define __fixdfdi_v_glibc20	INTUSE (__fixdfdi)
+#define __fixsfdi_v_glibc20	INTUSE (__fixsfdi)
+#define __fixunsdfdi_v_glibc20	INTUSE (__fixunsdfdi)
+#define __fixunssfdi_v_glibc20	INTUSE (__fixunssfdi)
+#define __floatdidf_v_glibc20	INTUSE (__floatdidf)
+#define __floatdisf_v_glibc20	INTUSE (__floatdisf)
+
+	.symver __ashldi3_v_glibc20,__ashldi3@GLIBC_2.0
+	.symver __ashrdi3_v_glibc20,__ashrdi3@GLIBC_2.0
+	.symver __lshrdi3_v_glibc20,__lshrdi3@GLIBC_2.0
+	.symver __cmpdi2_v_glibc20,__cmpdi2@GLIBC_2.0
+	.symver __ucmpdi2_v_glibc20,__ucmpdi2@GLIBC_2.0
+	.symver __fixdfdi_v_glibc20,__fixdfdi@GLIBC_2.0
+	.symver __fixunsdfdi_v_glibc20,__fixunsdfdi@GLIBC_2.0
+	.symver __fixsfdi_v_glibc20,__fixsfdi@GLIBC_2.0
+	.symver __fixunssfdi_v_glibc20,__fixunssfdi@GLIBC_2.0
+	.symver __floatdidf_v_glibc20,__floatdidf@GLIBC_2.0
+	.symver __floatdisf_v_glibc20,__floatdisf@GLIBC_2.0
+
+#ifdef HAVE_DOT_HIDDEN
+	.hidden __ashldi3
+	.hidden __ashrdi3
+	.hidden __lshrdi3
+	.hidden __cmpdi2
+	.hidden __ucmpdi2
+	.hidden __fixdfdi
+	.hidden __fixsfdi
+	.hidden __fixunsdfdi
+	.hidden __fixunssfdi
+	.hidden __floatdidf
+	.hidden __floatdisf
+#endif
+
+	.section	".text"
+
+	.align 2
+	.globl __ashldi3_v_glibc20
+	.type	__ashldi3_v_glibc20,@function
+__ashldi3_v_glibc20:
+	b __ashldi3@local
+.Lfe5:
+	.size	__ashldi3_v_glibc20,.Lfe5-__ashldi3_v_glibc20
+	.align 2
+	.globl __ashrdi3_v_glibc20
+	.type	__ashrdi3_v_glibc20,@function
+__ashrdi3_v_glibc20:
+	b __ashrdi3@local
+.Lfe6:
+	.size	__ashrdi3_v_glibc20,.Lfe6-__ashrdi3_v_glibc20
+	.align 2
+	.globl __lshrdi3_v_glibc20
+	.type	__lshrdi3_v_glibc20,@function
+__lshrdi3_v_glibc20:
+	b __lshrdi3@local
+.Lfe7:
+	.size	__lshrdi3_v_glibc20,.Lfe7-__lshrdi3_v_glibc20
+	.align 2
+	.globl __cmpdi2_v_glibc20
+	.type	__cmpdi2_v_glibc20,@function
+__cmpdi2_v_glibc20:
+	b __cmpdi2@local
+.Lfe8:
+	.size	__cmpdi2_v_glibc20,.Lfe8-__cmpdi2_v_glibc20
+	.align 2
+	.globl __ucmpdi2_v_glibc20
+	.type	__ucmpdi2_v_glibc20,@function
+__ucmpdi2_v_glibc20:
+	b __ucmpdi2@local
+.Lfe9:
+	.size	__ucmpdi2_v_glibc20,.Lfe9-__ucmpdi2_v_glibc20
+	.align 2
+	.globl __fixdfdi_v_glibc20
+	.type	__fixdfdi_v_glibc20,@function
+__fixdfdi_v_glibc20:
+	b __fixdfdi@local
+.Lfe10:
+	.size	__fixdfdi_v_glibc20,.Lfe10-__fixdfdi_v_glibc20
+	.align 2
+	.globl __fixunsdfdi_v_glibc20
+	.type	__fixunsdfdi_v_glibc20,@function
+__fixunsdfdi_v_glibc20:
+	b __fixunsdfdi@local
+.Lfe11:
+	.size	__fixunsdfdi_v_glibc20,.Lfe11-__fixunsdfdi_v_glibc20
+	.align 2
+	.globl __fixsfdi_v_glibc20
+	.type	__fixsfdi_v_glibc20,@function
+__fixsfdi_v_glibc20:
+	b __fixsfdi@local
+.Lfe12:
+	.size	__fixsfdi_v_glibc20,.Lfe12-__fixsfdi_v_glibc20
+	.align 2
+	.globl __fixunssfdi_v_glibc20
+	.type	__fixunssfdi_v_glibc20,@function
+__fixunssfdi_v_glibc20:
+	b __fixunssfdi@local
+.Lfe13:
+	.size	__fixunssfdi_v_glibc20,.Lfe13-__fixunssfdi_v_glibc20
+	.align 2
+	.globl __floatdidf_v_glibc20
+	.type	__floatdidf_v_glibc20,@function
+__floatdidf_v_glibc20:
+	b __floatdidf@local
+.Lfe14:
+	.size	__floatdidf_v_glibc20,.Lfe14-__floatdidf_v_glibc20
+	.align 2
+	.globl __floatdisf_v_glibc20
+	.type	__floatdisf_v_glibc20,@function
+__floatdisf_v_glibc20:
+	b __floatdisf@local
+.Lfe15:
+	.size	__floatdisf_v_glibc20,.Lfe15-__floatdisf_v_glibc20
+
+#endif
--- sysdeps/powerpc/libgcc-compat.c	Wed Aug 14 12:05:04 2002
+++ /dev/null	Thu Oct  4 06:30:44 2001
@@ -1,113 +0,0 @@
-/* pre-.hidden libgcc compatibility
-   Copyright (C) 2002 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-
-#include <stdint.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6)
-
-extern int64_t __ashldi3 (int64_t, int32_t);
-int64_t __ashldi3_internal (int64_t u, int32_t b)
-{
-  return __ashldi3 (u, b);
-}
-symbol_version (__ashldi3_internal, __ashldi3, GLIBC_2.0);
-
-
-extern int64_t __ashrdi3 (int64_t, int32_t);
-int64_t __ashrdi3_internal (int64_t u, int32_t b)
-{
-  return __ashrdi3 (u, b);
-}
-symbol_version (__ashrdi3_internal, __ashrdi3, GLIBC_2.0);
-
-
-extern int64_t __lshrdi3 (int64_t, int32_t);
-int64_t __lshrdi3_internal (int64_t u, int32_t b)
-{
-  return __lshrdi3 (u, b);
-}
-symbol_version (__lshrdi3_internal, __lshrdi3, GLIBC_2.0);
-
-
-extern int32_t __cmpdi2 (int64_t, int64_t);
-int32_t __cmpdi2_internal (int64_t u, int64_t v)
-{
-  return __cmpdi2 (u, v);
-}
-symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0);
-
-
-extern int32_t __ucmpdi2 (int64_t, int64_t);
-int32_t __ucmpdi2_internal (int64_t u, int64_t v)
-{
-  return __ucmpdi2 (u, v);
-}
-symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0);
-
-
-extern int64_t __fixdfdi (double);
-int64_t __fixdfdi_internal (double d)
-{
-  return __fixdfdi (d);
-}
-symbol_version (__fixdfdi_internal, __fixdfdi, GLIBC_2.0);
-
-
-extern int64_t __fixunsdfdi (double);
-int64_t __fixunsdfdi_internal (double d)
-{
-  return __fixunsdfdi (d);
-}
-symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0);
-
-
-extern int64_t __fixsfdi (float);
-int64_t __fixsfdi_internal (float d)
-{
-  return __fixsfdi (d);
-}
-symbol_version (__fixsfdi_internal, __fixsfdi, GLIBC_2.0);
-
-
-extern int64_t __fixunssfdi (float);
-int64_t __fixunssfdi_internal (float d)
-{
-  return __fixunssfdi (d);
-}
-symbol_version (__fixunssfdi_internal, __fixunssfdi, GLIBC_2.0);
-
-
-extern double __floatdidf (int64_t);
-double __floatdidf_internal (int64_t u)
-{
-  return __floatdidf (u);
-}
-symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0);
-
-
-extern float __floatdisf (int64_t);
-float __floatdisf_internal (int64_t u)
-{
-  return __floatdisf (u);
-}
-symbol_version (__floatdisf_internal, __floatdisf, GLIBC_2.0);
-
-#endif

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