[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: