Re: Need to release -13 for unstable real soon
Ben,
Actually, the patch currently in glibc-2-2-branch doesn't
address the OpenOffice issues. That is in a new patch that
Franz Sirl just provided me to test (attached below). I'll
build a glibc 2.2.5-12.1 with that patch applied over the
previous libgcc-compat I sent you against both gcc 2.95.4
and 3.1.1 to make sure it all works properly under debian.
As to the original libgc-compat patch, my understanding of
this is that it is essential if you build glibc under gcc >= 3.1
unless plan to rebuild everything under gcc 3.1. The reason
is that previously the symbols in libgcc weren't marked as
.hidden when linked into glibc. So lots of binaries built under
gcc 2.95.4 expect these libgcc symbols to be coming from
glibc. When you rebuild glibc with gcc 3.1, these symbols
become hidden and those binaries break.
The second patch, attached, changes the versioning of these
symbols being provided by glibc so that claim to be from GCC
rather than GLIBC-2.0.
Jack
-----------------------------------------------------------------
Index: sysdeps/powerpc/Makefile
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/powerpc/Makefile,v
retrieving revision 1.13.2.1
diff -u -p -r1.13.2.1 Makefile
--- sysdeps/powerpc/Makefile 21 May 2002 00:28:35 -0000 1.13.2.1
+++ sysdeps/powerpc/Makefile 5 Aug 2002 14:53:29 -0000
@@ -36,8 +36,8 @@ CFLAGS-gmon-start.o = -G0
endif
ifeq (yes,$(build-shared))
# Compatibility
-sysdep_routines += divdi3 libgcc-compat
-shared-only-routines += divdi3 libgcc-compat
+sysdep_routines += libgcc-compat
+shared-only-routines += libgcc-compat
endif
endif
--- /dev/null Thu Oct 4 06:30:44 2001
+++ sysdeps/powerpc/libgcc-compat.S Mon Aug 5 07:55:04 2002
@@ -0,0 +1,170 @@
+/* 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 __divdi3_v_glibc20 INTUSE (__divdi3)
+#define __udivdi3_v_glibc20 INTUSE (__udivdi3)
+#define __moddi3_v_glibc20 INTUSE (__moddi3)
+#define __umoddi3_v_glibc20 INTUSE (__umoddi3)
+#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 __divdi3_v_glibc20,__divdi3@GLIBC_2.0
+ .symver __moddi3_v_glibc20,__moddi3@GLIBC_2.0
+ .symver __udivdi3_v_glibc20,__udivdi3@GLIBC_2.0
+ .symver __umoddi3_v_glibc20,__umoddi3@GLIBC_2.0
+ .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
+
+ .section ".text"
+
+ .align 2
+ .globl __divdi3_v_glibc20
+ .type __divdi3_v_glibc20,@function
+__divdi3_v_glibc20:
+ b __divdi3@local
+.Lfe1:
+ .size __divdi3_v_glibc20,.Lfe1-__divdi3_v_glibc20
+ .align 2
+ .globl __moddi3_v_glibc20
+ .type __moddi3_v_glibc20,@function
+__moddi3_v_glibc20:
+ b __moddi3@local
+.Lfe2:
+ .size __moddi3_v_glibc20,.Lfe2-__moddi3_v_glibc20
+ .align 2
+ .globl __udivdi3_v_glibc20
+ .type __udivdi3_v_glibc20,@function
+__udivdi3_v_glibc20:
+ b __udivdi3@local
+.Lfe3:
+ .size __udivdi3_v_glibc20,.Lfe3-__udivdi3_v_glibc20
+ .align 2
+ .globl __umoddi3_v_glibc20
+ .type __umoddi3_v_glibc20,@function
+__umoddi3_v_glibc20:
+ b __umoddi3@local
+.Lfe4:
+ .size __umoddi3_v_glibc20,.Lfe4-__umoddi3_v_glibc20
+ .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 Jun 26 08:31:30 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
--------------------------------------------------------------------
Reply to: