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

r1554 - in glibc-package/branches/glibc-2.4/debian: . patches patches/any



Author: aurel32
Date: 2006-05-28 12:19:50 +0000 (Sun, 28 May 2006)
New Revision: 1554

Added:
   glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-main.diff
   glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-ports.diff
Removed:
   glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-all.diff
   glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-others.diff
Modified:
   glibc-package/branches/glibc-2.4/debian/changelog
   glibc-package/branches/glibc-2.4/debian/patches/series
Log:
 * Update any/local-libgcc-compat-{all,others}.diff and split them into
   any/local-libgcc-compat-{main,ports}.diff.



Modified: glibc-package/branches/glibc-2.4/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.4/debian/changelog	2006-05-28 11:44:53 UTC (rev 1553)
+++ glibc-package/branches/glibc-2.4/debian/changelog	2006-05-28 12:19:50 UTC (rev 1554)
@@ -79,6 +79,8 @@
   * Update mips/submitted-msq.diff to reflect the new port add-on.
   * Remove powerpc/cvs-gcc41-initfini.diff (merged upstream).
   * debian/sysdeps/sparc.mk: do an NPTL pass.
+  * Update any/local-libgcc-compat-{all,others}.diff and split them into
+    any/local-libgcc-compat-{main,ports}.diff.
 
  -- Aurelien Jarno <aurel32@debian.org>  Sun, 28 May 2006 03:28:14 +0200
 

Deleted: glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-all.diff
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-all.diff	2006-05-28 11:44:53 UTC (rev 1553)
+++ glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-all.diff	2006-05-28 12:19:50 UTC (rev 1554)
@@ -1,472 +0,0 @@
-# DP: Description: libgcc-compat symbols for mips, sparc, alpha, & i386
-# DP: Author: Guido Guenther
-# DP: Upstream status: Not submitted
-# DP: Date: 2002-10-13, updated 2003-03-01, updated 2003-03-23 by gotom
-
---- sysdeps/mips/Makefile.orig	Sun Oct 13 14:45:56 2002
-+++ sysdeps/mips/Makefile	Sun Oct 13 14:51:20 2002
-@@ -6,3 +6,11 @@
- ifeq ($(subdir),setjmp)
- sysdep_routines += setjmp_aux
- endif
-+
-+ifeq ($(subdir),csu)
-+ifeq (yes,$(build-shared))
-+# Compatibility
-+sysdep_routines += libgcc-compat
-+shared-only-routines += libgcc-compat
-+endif
-+endif
---- sysdeps/mips/Dist.orig	Sun Oct 13 15:07:31 2002
-+++ sysdeps/mips/Dist	Sun Oct 13 15:07:41 2002
-@@ -1,3 +1,4 @@
-+libgcc-compat.c
- setjmp_aux.c
- regdef.h
- sgidefs.h
---- /dev/null	Sat Mar 16 18:32:44 2002
-+++ sysdeps/mips/libgcc-compat.c	Sun Oct 20 17:11:59 2002
-@@ -0,0 +1,66 @@
-+/* pre-.hidden libgcc compatibility
-+   Copyright (C) 2002 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Guido Guenther <agx@sigxcpu.org>
-+
-+   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 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 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
---- /dev/null	Sat Mar 16 18:32:44 2002
-+++ sysdeps/mips/Versions	Sun Oct 20 17:12:00 2002
-@@ -0,0 +1,8 @@
-+libc {
-+  GLIBC_2.0 {
-+    # Functions from libgcc.
-+    __cmpdi2; __ucmpdi2;
-+    __divdi3; __moddi3; __udivdi3; __umoddi3;
-+    __fixdfdi; __floatdidf; __floatdisf;
-+  }
-+}
---- /dev/null	Sat Mar 16 18:32:44 2002
-+++ sysdeps/i386/libgcc-compat.c	Sun Feb 16 01:43:47 2003
-@@ -0,0 +1,75 @@
-+/* pre-.hidden libgcc compatibility
-+   Copyright (C) 2002 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Guido Guenther <agx@sigxcpu.org>
-+
-+   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 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 __fixunsdfdi (double);
-+int64_t __fixunsdfdi_internal (double d)
-+{
-+	  return __fixunsdfdi (d);
-+}
-+symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0);
-+
-+extern int64_t __fixunssfdi (float);
-+int64_t __fixunssfdi_internal (float d)
-+{
-+  return __fixunssfdi (d);
-+}
-+
-+symbol_version (__fixunsfdi_internal, __fixunsfdi, GLIBC_2.0);
-+
-+typedef float XFtype __attribute__ ((mode (XF)));
-+
-+extern int64_t __fixunsxfdi (XFtype);
-+int64_t __fixunsxfdi_internal (XFtype d)
-+{
-+  return __fixunsxfdi (d);
-+}
-+
-+symbol_version (__fixunsxfdi_internal, __fixunsxfdi, 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);
-+
-+#endif
-Index: sysdeps/i386/Makefile
-===================================================================
-RCS file: /cvs/glibc/libc/sysdeps/i386/Makefile,v
-retrieving revision 1.14
-diff -u -u -r1.14 Makefile
---- sysdeps/i386/Makefile	19 Sep 2002 06:46:06 -0000	1.14
-+++ sysdeps/i386/Makefile	16 Feb 2003 11:33:41 -0000
-@@ -20,3 +20,11 @@
- CFLAGS-dl-load.c += -Wno-unused
- CFLAGS-dl-reloc.c += -Wno-unused
- endif
-+
-+ifeq ($(subdir),csu)
-+ifeq (yes,$(build-shared))
-+# Compatibility
-+sysdep_routines += libgcc-compat
-+shared-only-routines += libgcc-compat
-+endif
-+endif
-Index: sysdeps/i386/Dist
-===================================================================
-RCS file: /cvs/glibc/libc/sysdeps/i386/Dist,v
-retrieving revision 1.4
-diff -u -u -r1.4 Dist
---- sysdeps/i386/Dist	28 Aug 2002 08:24:48 -0000	1.4
-+++ sysdeps/i386/Dist	16 Feb 2003 11:33:47 -0000
-@@ -2,3 +2,4 @@
- machine-gmon.h
- bp-asm.h
- bits/link.h
-+libgcc-compat.c
-Index: sysdeps/i386/Versions
-===================================================================
-RCS file: /cvs/glibc/libc/sysdeps/i386/Versions,v
-retrieving revision 1.3
-diff -u -u -r1.3 Versions
---- sysdeps/i386/Versions	17 May 1999 17:23:56 -0000	1.3
-+++ sysdeps/i386/Versions	16 Feb 2003 11:34:17 -0000
-@@ -2,6 +2,9 @@
-   GLIBC_2.0 {
-     # Functions from libgcc.
-     __divdi3; __moddi3; __udivdi3; __umoddi3;
-+    __cmpdi2; __ucmpdi2; 
-+    __fixunsdfdi; __fixunssfdi; __fixunsxfdi;
-+    __floatdidf;
-   }
-   GLIBC_2.1 {
-     # global variable
---- /dev/null	Sat Mar 16 18:32:44 2002
-+++ sysdeps/sparc/sparc32/libgcc-compat.c	Fri Feb  7 00:29:23 2003
-@@ -0,0 +1,121 @@
-+/* pre-.hidden libgcc compatibility
-+   Copyright (C) 2002 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Guido Guenther <agx@sigxcpu.org>
-+
-+   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 __fixsfdi (float);
-+int64_t __fixsfdi_internal (float d)
-+{
-+  return __fixsfdi (d);
-+}
-+symbol_version (__fixsfdi_internal, __fixsfdi, 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 __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);
-+
-+
-+extern int64_t __muldi3 (int64_t, int64_t);
-+int64_t __muldi3_internal (int64_t u, int64_t v)
-+{
-+  return __muldi3 (u, v);
-+}
-+symbol_version (__muldi3_internal, __muldi3, GLIBC_2.0);
-+
-+#endif
---- sysdeps/sparc/sparc32/Makefile	6 Jul 2001 04:56:04 -0000	1.5
-+++ sysdeps/sparc/sparc32/Makefile	6 Feb 2003 23:32:15 -0000
-@@ -20,6 +20,14 @@
- sysdep_routines = dotmul umul $(divrem) alloca
- endif	# gnulib
- 
-+ifeq ($(subdir),csu)
-+ifeq (yes,$(build-shared))
-+# Compatibility
-+sysdep_routines += libgcc-compat
-+shared-only-routines += libgcc-compat
-+endif
-+endif
-+
- # We distribute these files, even though they are generated,
- # so as to avoid the need for a functioning m4 to build the library.
- divrem := sdiv udiv rem urem
-Index: sysdeps/sparc/sparc32/Dist
-===================================================================
-RCS file: /cvs/glibc/libc/sysdeps/sparc/sparc32/Dist,v
-retrieving revision 1.4
-diff -u -u -r1.4 Dist
---- sysdeps/sparc/sparc32/Dist	9 Oct 2000 00:39:58 -0000	1.4
-+++ sysdeps/sparc/sparc32/Dist	6 Feb 2003 23:51:09 -0000
-@@ -7,3 +7,4 @@
- urem.S
- alloca.S
- ieee754.h
-+libgcc-compat.c
---- sysdeps/sparc/sparc32/Versions.orig	2003-02-07 07:46:20.000000000 -0500
-+++ sysdeps/sparc/sparc32/Versions	2003-02-07 07:46:58.000000000 -0500
-@@ -1,5 +1,9 @@
- libc {
-   GLIBC_2.0 {
-     .div; .mul; .rem; .udiv; .umul; .urem;
-+    __divdi3; __moddi3; __udivdi3; __umoddi3; __muldi3;
-+    __ashldi3; __ashrdi3; __lshrdi3; __cmpdi2; __ucmpdi2;
-+    __fixdfdi; __fixsfdi; __fixunsdfdi; __fixunssfdi; 
-+    __floatdidf; __floatdisf;
-   }
- }
-   GLIBC_2.1 {
-     # global variable
---- /dev/null	Sat Mar 16 18:32:44 2002
-+++ sysdeps/alpha/libgcc-compat.c	Sat Mar  1 21:19:36 2003
-@@ -0,0 +1,35 @@
-+/* pre-.hidden libgcc compatibility
-+   Copyright (C) 2002 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Guido Guenther <agx@sigxcpu.org>
-+
-+   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)
-+
-+typedef int int128_t __attribute__((__mode__(TI)));
-+
-+extern int128_t __multi3 (int128_t, int128_t);
-+int128_t INTUSE (__multi3) (int128_t x, int128_t y)
-+{
-+  return __multi3 (x, y);
-+}
-+symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.0);
-+
-+#endif
-Index: sysdeps/alpha/Versions
-===================================================================
-RCS file: /cvs/glibc/libc/sysdeps/alpha/Versions,v
-retrieving revision 1.2
-diff -u -u -r1.2 Versions
---- sysdeps/alpha/Versions	20 Jan 1999 09:23:32 -0000	1.2
-+++ sysdeps/alpha/Versions	1 Mar 2003 21:11:25 -0000
-@@ -3,6 +3,8 @@
-     # functions with special/multiple interfaces
-     __divqu; __remqu; __divqs; __remqs; __divlu; __remlu; __divls;
-     __remls; __divl; __reml; __divq; __remq; __divqu; __remqu;
-+    # libgcc-compat
-+    __multi3;
-   }
- }
- libm {
-Index: sysdeps/alpha/Makefile
-===================================================================
-RCS file: /cvs/glibc/libc/sysdeps/alpha/Makefile,v
-retrieving revision 1.18
-diff -u -u -r1.18 Makefile
---- sysdeps/alpha/Makefile	29 Jan 2002 03:53:32 -0000	1.18
-+++ sysdeps/alpha/Makefile	2 Mar 2003 12:20:58 -0000
-@@ -47,3 +47,11 @@
- # libc.so requires about 16k for the small data area, which is well
- # below the 64k maximum.
- pic-ccflag = -fpic
-+
-+ifeq ($(subdir),csu)
-+ifeq (yes,$(build-shared))
-+# Compatibility
-+sysdep_routines += libgcc-compat
-+shared-only-routines += libgcc-compat
-+endif
-+endif

Added: glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-main.diff
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-main.diff	2006-05-28 11:44:53 UTC (rev 1553)
+++ glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-main.diff	2006-05-28 12:19:50 UTC (rev 1554)
@@ -0,0 +1,965 @@
+# DP: Description: libgcc-compat symbols for i386, sparc, 
+#                  alpha, ia64 (derived from RedHat's), s390
+# DP: Author: Guido Guenther, GOTO Masanori
+# DP: Upstream status: Not submitted
+# DP: Date: 2002-10-13, updated 2006-05-28
+
+--- /dev/null	Sat Mar 16 18:32:44 2002
++++ sysdeps/i386/libgcc-compat.c	Sun Feb 16 01:43:47 2003
+@@ -0,0 +1,75 @@
++/* pre-.hidden libgcc compatibility
++   Copyright (C) 2002 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Guido Guenther <agx@sigxcpu.org>
++
++   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 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 __fixunsdfdi (double);
++int64_t __fixunsdfdi_internal (double d)
++{
++	  return __fixunsdfdi (d);
++}
++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0);
++
++extern int64_t __fixunssfdi (float);
++int64_t __fixunssfdi_internal (float d)
++{
++  return __fixunssfdi (d);
++}
++
++symbol_version (__fixunsfdi_internal, __fixunsfdi, GLIBC_2.0);
++
++typedef float XFtype __attribute__ ((mode (XF)));
++
++extern int64_t __fixunsxfdi (XFtype);
++int64_t __fixunsxfdi_internal (XFtype d)
++{
++  return __fixunsxfdi (d);
++}
++
++symbol_version (__fixunsxfdi_internal, __fixunsxfdi, 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);
++
++#endif
+Index: sysdeps/i386/Makefile
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/i386/Makefile,v
+retrieving revision 1.14
+diff -u -u -r1.14 Makefile
+--- sysdeps/i386/Makefile	19 Sep 2002 06:46:06 -0000	1.14
++++ sysdeps/i386/Makefile	16 Feb 2003 11:33:41 -0000
+@@ -9,6 +9,11 @@
+ # On i686 we must avoid generating the trampoline functions generated
+ # to get the GOT pointer.
+ CFLAGS-initfini.s += -march=i386 -mtune=i386
++ifeq (yes,$(build-shared))
++# Compatibility
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
++endif
+ endif
+ 
+ ifeq ($(subdir),gmon)
+Index: sysdeps/i386/Versions
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/i386/Versions,v
+retrieving revision 1.3
+diff -u -u -r1.3 Versions
+--- sysdeps/i386/Versions	17 May 1999 17:23:56 -0000	1.3
++++ sysdeps/i386/Versions	16 Feb 2003 11:34:17 -0000
+@@ -2,6 +2,9 @@
+   GLIBC_2.0 {
+     # Functions from libgcc.
+     __divdi3; __moddi3; __udivdi3; __umoddi3;
++    __cmpdi2; __ucmpdi2; 
++    __fixunsdfdi; __fixunssfdi; __fixunsxfdi;
++    __floatdidf;
+   }
+   GLIBC_2.1 {
+     # global variable
+--- /dev/null	Sat Mar 16 18:32:44 2002
++++ sysdeps/sparc/sparc32/libgcc-compat.c	Fri Feb  7 00:29:23 2003
+@@ -0,0 +1,121 @@
++/* pre-.hidden libgcc compatibility
++   Copyright (C) 2002 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Guido Guenther <agx@sigxcpu.org>
++
++   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 __fixsfdi (float);
++int64_t __fixsfdi_internal (float d)
++{
++  return __fixsfdi (d);
++}
++symbol_version (__fixsfdi_internal, __fixsfdi, 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 __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);
++
++
++extern int64_t __muldi3 (int64_t, int64_t);
++int64_t __muldi3_internal (int64_t u, int64_t v)
++{
++  return __muldi3 (u, v);
++}
++symbol_version (__muldi3_internal, __muldi3, GLIBC_2.0);
++
++#endif
+--- sysdeps/sparc/sparc32/Makefile	6 Jul 2001 04:56:04 -0000	1.5
++++ sysdeps/sparc/sparc32/Makefile	6 Feb 2003 23:32:15 -0000
+@@ -20,6 +20,14 @@
+ sysdep_routines = dotmul umul $(divrem) alloca
+ endif	# gnulib
+ 
++ifeq ($(subdir),csu)
++ifeq (yes,$(build-shared))
++# Compatibility
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
++endif
++endif
++
+ # We distribute these files, even though they are generated,
+ # so as to avoid the need for a functioning m4 to build the library.
+ divrem := sdiv udiv rem urem
+--- sysdeps/sparc/sparc32/Versions	2003-02-07 07:46:20.000000000 -0500
++++ sysdeps/sparc/sparc32/Versions	2003-02-07 07:46:58.000000000 -0500
+@@ -1,5 +1,9 @@
+ libc {
+   GLIBC_2.0 {
+     .div; .mul; .rem; .udiv; .umul; .urem;
++    __divdi3; __moddi3; __udivdi3; __umoddi3; __muldi3;
++    __ashldi3; __ashrdi3; __lshrdi3; __cmpdi2; __ucmpdi2;
++    __fixdfdi; __fixsfdi; __fixunsdfdi; __fixunssfdi; 
++    __floatdidf; __floatdisf;
+   }
+ }
+   GLIBC_2.1 {
+     # global variable
+--- /dev/null	Sat Mar 16 18:32:44 2002
++++ sysdeps/alpha/libgcc-compat.c	Sat Mar  1 21:19:36 2003
+@@ -0,0 +1,35 @@
++/* pre-.hidden libgcc compatibility
++   Copyright (C) 2002 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Guido Guenther <agx@sigxcpu.org>
++
++   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)
++
++typedef int int128_t __attribute__((__mode__(TI)));
++
++extern int128_t __multi3 (int128_t, int128_t);
++int128_t INTUSE (__multi3) (int128_t x, int128_t y)
++{
++  return __multi3 (x, y);
++}
++symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.0);
++
++#endif
+Index: sysdeps/alpha/Versions
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/alpha/Versions,v
+retrieving revision 1.2
+diff -u -u -r1.2 Versions
+--- sysdeps/alpha/Versions	20 Jan 1999 09:23:32 -0000	1.2
++++ sysdeps/alpha/Versions	1 Mar 2003 21:11:25 -0000
+@@ -3,6 +3,8 @@
+     # functions with special/multiple interfaces
+     __divqu; __remqu; __divqs; __remqs; __divlu; __remlu; __divls;
+     __remls; __divl; __reml; __divq; __remq; __divqu; __remqu;
++    # libgcc-compat
++    __multi3;
+   }
+ }
+ libm {
+Index: sysdeps/alpha/Makefile
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/alpha/Makefile,v
+retrieving revision 1.18
+diff -u -u -r1.18 Makefile
+--- sysdeps/alpha/Makefile	29 Jan 2002 03:53:32 -0000	1.18
++++ sysdeps/alpha/Makefile	2 Mar 2003 12:20:58 -0000
+@@ -47,3 +47,11 @@
+ # libc.so requires about 16k for the small data area, which is well
+ # below the 64k maximum.
+ pic-ccflag = -fpic
++
++ifeq ($(subdir),csu)
++ifeq (yes,$(build-shared))
++# Compatibility
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
++endif
++endif
+diff -Nuar sysdeps/ia64/Makefile sysdeps/ia64/Makefile
+--- sysdeps/ia64/Makefile	2002-05-15 05:46:15.000000000 +0900
++++ sysdeps/ia64/Makefile	2003-03-04 00:51:34.000000000 +0900
+@@ -12,8 +12,8 @@
+ 
+ ifeq (yes,$(build-shared))
+ # Compatibility
+-sysdep_routines += ia64libgcc
+-shared-only-routines += ia64libgcc
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
+ endif
+ endif
+ 
+diff -Nuar sysdeps/ia64/Versions sysdeps/ia64/Versions
+--- sysdeps/ia64/Versions	2002-05-03 16:00:46.000000000 +0900
++++ sysdeps/ia64/Versions	2003-03-04 01:14:39.000000000 +0900
+@@ -10,6 +10,10 @@
+     # Functions from libgcc.
+     __divtf3; __divdf3; __divsf3; __divdi3; __moddi3; __udivdi3; __umoddi3;
+     __multi3;
++    __divsi3;
++    __modsi3;
++    __udivsi3;
++    __umodsi3;
+   }
+ }
+ libm {
+diff -Nuar sysdeps/ia64/ia64libgcc.S sysdeps/ia64/ia64libgcc.S
+--- sysdeps/ia64/ia64libgcc.S	2002-05-15 05:46:15.000000000 +0900
++++ sysdeps/ia64/ia64libgcc.S	2003-03-04 00:51:34.000000000 +0900
+@@ -1,350 +0,0 @@
+-/* From the Intel IA-64 Optimization Guide, choose the minimum latency
+-   alternative.  */
+-
+-#include <sysdep.h>
+-#undef ret
+-
+-#include <shlib-compat.h>
+-
+-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6)
+-
+-/* __divtf3
+-   Compute a 80-bit IEEE double-extended quotient.
+-   farg0 holds the dividend.  farg1 holds the divisor.  */
+-
+-ENTRY(___divtf3)
+-	cmp.eq p7, p0 = r0, r0
+-	frcpa.s0 f10, p6 = farg0, farg1
+-	;;
+-(p6)	cmp.ne p7, p0 = r0, r0
+-	.pred.rel.mutex p6, p7
+-(p6)	fnma.s1 f11 = farg1, f10, f1
+-(p6)	fma.s1 f12 = farg0, f10, f0
+-	;;
+-(p6)	fma.s1 f13 = f11, f11, f0
+-(p6)	fma.s1 f14 = f11, f11, f11
+-	;;
+-(p6)	fma.s1 f11 = f13, f13, f11
+-(p6)	fma.s1 f13 = f14, f10, f10
+-	;;
+-(p6)	fma.s1 f10 = f13, f11, f10
+-(p6)	fnma.s1 f11 = farg1, f12, farg0
+-	;;
+-(p6)	fma.s1 f11 = f11, f10, f12
+-(p6)	fnma.s1 f12 = farg1, f10, f1
+-	;;
+-(p6)	fma.s1 f10 = f12, f10, f10
+-(p6)	fnma.s1 f12 = farg1, f11, farg0
+-	;;
+-(p6)	fma.s0 fret0 = f12, f10, f11
+-(p7)	mov fret0 = f10
+-	br.ret.sptk rp
+-END(___divtf3)
+-	.symver ___divtf3, __divtf3@GLIBC_2.2
+-
+-/* __divdf3
+-   Compute a 64-bit IEEE double quotient.
+-   farg0 holds the dividend.  farg1 holds the divisor.  */
+-
+-ENTRY(___divdf3)
+-	cmp.eq p7, p0 = r0, r0
+-	frcpa.s0 f10, p6 = farg0, farg1
+-	;;
+-(p6)	cmp.ne p7, p0 = r0, r0
+-	.pred.rel.mutex p6, p7
+-(p6)	fmpy.s1 f11 = farg0, f10
+-(p6)	fnma.s1 f12 = farg1, f10, f1
+-	;;
+-(p6)	fma.s1 f11 = f12, f11, f11
+-(p6)	fmpy.s1 f13 = f12, f12
+-	;;
+-(p6)	fma.s1 f10 = f12, f10, f10
+-(p6)	fma.s1 f11 = f13, f11, f11
+-	;;
+-(p6)	fmpy.s1 f12 = f13, f13
+-(p6)	fma.s1 f10 = f13, f10, f10
+-	;;
+-(p6)	fma.d.s1 f11 = f12, f11, f11
+-(p6)	fma.s1 f10 = f12, f10, f10
+-	;;
+-(p6)	fnma.d.s1 f8 = farg1, f11, farg0
+-	;;
+-(p6)	fma.d fret0 = f8, f10, f11
+-(p7)	mov fret0 = f10
+-	br.ret.sptk rp
+-	;;
+-END(___divdf3)
+-	.symver	___divdf3, __divdf3@GLIBC_2.2
+-
+-/* __divsf3
+-   Compute a 32-bit IEEE float quotient.
+-   farg0 holds the dividend.  farg1 holds the divisor.  */
+-
+-ENTRY(___divsf3)
+-	cmp.eq p7, p0 = r0, r0
+-	frcpa.s0 f10, p6 = farg0, farg1
+-	;;
+-(p6)	cmp.ne p7, p0 = r0, r0
+-	.pred.rel.mutex p6, p7
+-(p6)	fmpy.s1 f8 = farg0, f10
+-(p6)	fnma.s1 f9 = farg1, f10, f1
+-	;;
+-(p6)	fma.s1 f8 = f9, f8, f8
+-(p6)	fmpy.s1 f9 = f9, f9
+-	;;
+-(p6)	fma.s1 f8 = f9, f8, f8
+-(p6)	fmpy.s1 f9 = f9, f9
+-	;;
+-(p6)	fma.d.s1 f10 = f9, f8, f8
+-	;;
+-(p6)	fnorm.s.s0 fret0 = f10
+-(p7)	mov fret0 = f10
+-	br.ret.sptk rp
+-	;;
+-END(___divsf3)
+-	.symver	___divsf3, __divsf3@GLIBC_2.2
+-
+-/* __divdi3
+-   Compute a 64-bit integer quotient.
+-   in0 holds the dividend.  in1 holds the divisor.  */
+-
+-ENTRY(___divdi3)
+-	.regstk 2,0,0,0
+-	/* Transfer inputs to FP registers.  */
+-	setf.sig f8 = in0
+-	setf.sig f9 = in1
+-	;;
+-	/* Convert the inputs to FP, so that they won't be treated as
+-	   unsigned.  */
+-	fcvt.xf f8 = f8
+-	fcvt.xf f9 = f9
+-	;;
+-	/* Compute the reciprocal approximation.  */
+-	frcpa.s1 f10, p6 = f8, f9
+-	;;
+-	/* 3 Newton-Raphson iterations.  */
+-(p6)	fnma.s1 f11 = f9, f10, f1
+-(p6)	fmpy.s1 f12 = f8, f10
+-	;;
+-(p6)	fmpy.s1 f13 = f11, f11
+-(p6)	fma.s1 f12 = f11, f12, f12
+-	;;
+-(p6)	fma.s1 f10 = f11, f10, f10
+-(p6)	fma.s1 f11 = f13, f12, f12
+-	;;
+-(p6)	fma.s1 f10 = f13, f10, f10
+-(p6)	fnma.s1 f12 = f9, f11, f8
+-	;;
+-(p6)	fma.s1 f10 = f12, f10, f11
+-	;;
+-	/* Round quotient to an integer.  */
+-	fcvt.fx.trunc.s1 f10 = f10
+-	;;
+-	/* Transfer result to GP registers.  */
+-	getf.sig ret0 = f10
+-	br.ret.sptk rp
+-	;;
+-END(___divdi3)
+-	.symver	___divdi3, __divdi3@GLIBC_2.2
+-
+-/* __moddi3
+-   Compute a 64-bit integer modulus.
+-   in0 holds the dividend (a).  in1 holds the divisor (b).  */
+-
+-ENTRY(___moddi3)
+-	.regstk 2,0,0,0
+-	/* Transfer inputs to FP registers.  */
+-	setf.sig f14 = in0
+-	setf.sig f9 = in1
+-	;;
+-	/* Convert the inputs to FP, so that they won't be treated as
+-	   unsigned.  */
+-	fcvt.xf f8 = f14
+-	fcvt.xf f9 = f9
+-	;;
+-	/* Compute the reciprocal approximation.  */
+-	frcpa.s1 f10, p6 = f8, f9
+-	;;
+-	/* 3 Newton-Raphson iterations.  */
+-(p6)	fmpy.s1 f12 = f8, f10
+-(p6)	fnma.s1 f11 = f9, f10, f1
+-	;;
+-(p6)	fma.s1 f12 = f11, f12, f12
+-(p6)	fmpy.s1 f13 = f11, f11
+-	;;
+-(p6)	fma.s1 f10 = f11, f10, f10
+-(p6)	fma.s1 f11 = f13, f12, f12
+-	;;
+-	sub in1 = r0, in1
+-(p6)	fma.s1 f10 = f13, f10, f10
+-(p6)	fnma.s1 f12 = f9, f11, f8
+-	;;
+-	setf.sig f9 = in1
+-(p6)	fma.s1 f10 = f12, f10, f11
+-	;;
+-	fcvt.fx.trunc.s1 f10 = f10
+-	;;
+-	/* r = q * (-b) + a  */
+-	xma.l f10 = f10, f9, f14
+-	;;
+-	/* Transfer result to GP registers.  */
+-	getf.sig ret0 = f10
+-	br.ret.sptk rp
+-	;;
+-END(___moddi3)
+-	.symver ___moddi3, __moddi3@GLIBC_2.2
+-
+-/* __udivdi3
+-   Compute a 64-bit unsigned integer quotient.
+-   in0 holds the dividend.  in1 holds the divisor.  */
+-
+-ENTRY(___udivdi3)
+-	.regstk 2,0,0,0
+-	/* Transfer inputs to FP registers.  */
+-	setf.sig f8 = in0
+-	setf.sig f9 = in1
+-	;;
+-	/* Convert the inputs to FP, to avoid FP software-assist faults.  */
+-	fcvt.xuf.s1 f8 = f8
+-	fcvt.xuf.s1 f9 = f9
+-	;;
+-	/* Compute the reciprocal approximation.  */
+-	frcpa.s1 f10, p6 = f8, f9
+-	;;
+-	/* 3 Newton-Raphson iterations.  */
+-(p6)	fnma.s1 f11 = f9, f10, f1
+-(p6)	fmpy.s1 f12 = f8, f10
+-	;;
+-(p6)	fmpy.s1 f13 = f11, f11
+-(p6)	fma.s1 f12 = f11, f12, f12
+-	;;
+-(p6)	fma.s1 f10 = f11, f10, f10
+-(p6)	fma.s1 f11 = f13, f12, f12
+-	;;
+-(p6)	fma.s1 f10 = f13, f10, f10
+-(p6)	fnma.s1 f12 = f9, f11, f8
+-	;;
+-(p6)	fma.s1 f10 = f12, f10, f11
+-	;;
+-	/* Round quotient to an unsigned integer.  */
+-	fcvt.fxu.trunc.s1 f10 = f10
+-	;;
+-	/* Transfer result to GP registers.  */
+-	getf.sig ret0 = f10
+-	br.ret.sptk rp
+-	;;
+-END(___udivdi3)
+-	.symver	___udivdi3, __udivdi3@GLIBC_2.2
+-
+-/* __umoddi3
+-   Compute a 64-bit unsigned integer modulus.
+-   in0 holds the dividend (a).  in1 holds the divisor (b).  */
+-
+-ENTRY(___umoddi3)
+-	.regstk 2,0,0,0
+-	/* Transfer inputs to FP registers.  */
+-	setf.sig f14 = in0
+-	setf.sig f9 = in1
+-	;;
+-	/* Convert the inputs to FP, to avoid FP software assist faults.  */
+-	fcvt.xuf.s1 f8 = f14
+-	fcvt.xuf.s1 f9 = f9
+-	;;
+-	/* Compute the reciprocal approximation.  */
+-	frcpa.s1 f10, p6 = f8, f9
+-	;;
+-	/* 3 Newton-Raphson iterations.  */
+-(p6)	fmpy.s1 f12 = f8, f10
+-(p6)	fnma.s1 f11 = f9, f10, f1
+-	;;
+-(p6)	fma.s1 f12 = f11, f12, f12
+-(p6)	fmpy.s1 f13 = f11, f11
+-	;;
+-(p6)	fma.s1 f10 = f11, f10, f10
+-(p6)	fma.s1 f11 = f13, f12, f12
+-	;;
+-	sub in1 = r0, in1
+-(p6)	fma.s1 f10 = f13, f10, f10
+-(p6)	fnma.s1 f12 = f9, f11, f8
+-	;;
+-	setf.sig f9 = in1
+-(p6)	fma.s1 f10 = f12, f10, f11
+-	;;
+-	/* Round quotient to an unsigned integer.  */
+-	fcvt.fxu.trunc.s1 f10 = f10
+-	;;
+-	/* r = q * (-b) + a  */
+-	xma.l f10 = f10, f9, f14
+-	;;
+-	/* Transfer result to GP registers.  */
+-	getf.sig ret0 = f10
+-	br.ret.sptk rp
+-	;;
+-END(___umoddi3)
+-	.symver	___umoddi3, __umoddi3@GLIBC_2.2
+-
+-/* __multi3
+-   Compute a 128-bit multiply of 128-bit multiplicands.
+-   in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b).  */
+-
+-ENTRY(___multi3)
+-	.regstk 4,0,0,0
+-	setf.sig f6 = in1
+-	movl r19 = 0xffffffff
+-	setf.sig f7 = in2
+-	;;
+-	and r14 = r19, in0
+-	;;
+-	setf.sig f10 = r14
+-	and r14 = r19, in2
+-	xmpy.l f9 = f6, f7
+-	;;
+-	setf.sig f6 = r14
+-	shr.u r14 = in0, 32
+-	;;
+-	setf.sig f7 = r14
+-	shr.u r14 = in2, 32
+-	;;
+-	setf.sig f8 = r14
+-	xmpy.l f11 = f10, f6
+-	xmpy.l f6 = f7, f6
+-	;;
+-	getf.sig r16 = f11
+-	xmpy.l f7 = f7, f8
+-	;;
+-	shr.u r14 = r16, 32
+-	and r16 = r19, r16
+-	getf.sig r17 = f6
+-	setf.sig f6 = in0
+-	;;
+-	setf.sig f11 = r14
+-	getf.sig r21 = f7
+-	setf.sig f7 = in3
+-	;;
+-	xma.l f11 = f10, f8, f11
+-	xma.l f6 = f6, f7, f9
+-	;;
+-	getf.sig r18 = f11
+-	;;
+-	add r18 = r18, r17
+-	;;
+-	and r15 = r19, r18
+-	cmp.ltu p7, p6 = r18, r17
+-	;;
+-	getf.sig r22 = f6
+-(p7)	adds r14 = 1, r19
+-	;;
+-(p7)	add r21 = r21, r14
+-	shr.u r14 = r18, 32
+-	shl r15 = r15, 32
+-	;;
+-	add r20 = r21, r14
+-	;;
+-	add ret0 = r15, r16
+-	add ret1 = r22, r20
+-	br.ret.sptk rp
+-	;;
+-END(___multi3)
+-	.symver	___multi3, __multi3@GLIBC_2.2
+-
+-#endif
+diff -Nuar sysdeps/ia64/libgcc-compat.c sysdeps/ia64/libgcc-compat.c
+--- sysdeps/ia64/libgcc-compat.c	1970-01-01 09:00:00.000000000 +0900
++++ sysdeps/ia64/libgcc-compat.c	2003-03-04 02:24:15.000000000 +0900
+@@ -0,0 +1,112 @@
++/* 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_2, GLIBC_2_2_6)
++
++typedef int int128_t __attribute__((__mode__(TI)));
++
++extern long double __divtf3 (long double, long double) attribute_hidden;
++long double INTUSE (__divtf3) (long double x, long double y)
++{
++  return __divtf3 (x, y);
++}
++symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2);
++
++extern double __divdf3 (double, double) attribute_hidden;
++double INTUSE (__divdf3) (double x, double y)
++{
++  return __divdf3 (x, y);
++}
++symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2);
++
++extern float __divsf3 (float, float) attribute_hidden;
++float INTUSE (__divsf3) (float x, float y)
++{
++  return __divsf3 (x, y);
++}
++symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2);
++
++extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden;
++int64_t INTUSE (__divdi3) (int64_t x, int64_t y)
++{
++  return __divdi3 (x, y);
++}
++symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2);
++
++extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden;
++int64_t INTUSE (__moddi3) (int64_t x, int64_t y)
++{
++  return __moddi3 (x, y);
++}
++symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2);
++
++extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden;
++uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y)
++{
++  return __udivdi3 (x, y);
++}
++symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2);
++
++extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden;
++uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y)
++{
++  return __umoddi3 (x, y);
++}
++symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2);
++
++extern int128_t __multi3 (int128_t, int128_t) attribute_hidden;
++int128_t INTUSE (__multi3) (int128_t x, int128_t y)
++{
++  return __multi3 (x, y);
++}
++symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2);
++
++extern int64_t __divsi3 (int64_t, int64_t) attribute_hidden;
++int64_t INTUSE (__divsi3) (int64_t x, int64_t y)
++{
++  return __divsi3 (x, y);
++}
++symbol_version (INTUSE (__divsi3), __divsi3, GLIBC_2.2);
++
++extern int64_t __modsi3 (int64_t, int64_t) attribute_hidden;
++int64_t INTUSE (__modsi3) (int64_t x, int64_t y)
++{
++  return __modsi3 (x, y);
++}
++symbol_version (INTUSE (__modsi3), __modsi3, GLIBC_2.2);
++
++extern uint64_t __udivsi3 (uint64_t, uint64_t) attribute_hidden;
++uint64_t INTUSE (__udivsi3) (uint64_t x, uint64_t y)
++{
++  return __udivsi3 (x, y);
++}
++symbol_version (INTUSE (__udivsi3), __udivsi3, GLIBC_2.2);
++
++extern uint64_t __umodsi3 (uint64_t, uint64_t) attribute_hidden;
++uint64_t INTUSE (__umodsi3) (uint64_t x, uint64_t y)
++{
++  return __umodsi3 (x, y);
++}
++symbol_version (INTUSE (__umodsi3), __umodsi3, GLIBC_2.2);
++
++#endif
+diff -Nuar sysdeps/s390/s390-32/Makefile sysdeps/s390/s390-32/Makefile
+--- sysdeps/s390/s390-32/Makefile	2002-09-19 15:42:09.000000000 +0900
++++ sysdeps/s390/s390-32/Makefile	2003-03-02 11:09:11.000000000 +0900
+@@ -9,3 +9,11 @@
+ CFLAGS-dl-load.c += -Wno-unused
+ CFLAGS-dl-reloc.c += -Wno-unused
+ endif
++
++ifeq ($(subdir),csu)
++ifeq (yes,$(build-shared))
++# Compatibility
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
++endif
++endif
+diff -Nuar sysdeps/s390/s390-32/Versions sysdeps/s390/s390-32/Versions
+--- sysdeps/s390/s390-32/Versions	2001-03-16 17:15:07.000000000 +0900
++++ sysdeps/s390/s390-32/Versions	2003-03-02 11:08:03.000000000 +0900
+@@ -2,5 +2,13 @@
+   GLIBC_2.0 {
+     # Functions from libgcc.
+     __divdi3; __moddi3; __udivdi3; __umoddi3;
++    __cmpdi2;
++    __fixdfdi;
++    __fixsfdi;
++    __fixunsdfdi;
++    __fixunssfdi;
++    __floatdidf;
++    __floatdisf;
++    __ucmpdi2;
+   }
+ }
+diff -Nuar sysdeps/s390/s390-32/libgcc-compat.c sysdeps/s390/s390-32/libgcc-compat.c
+--- sysdeps/s390/s390-32/libgcc-compat.c	1970-01-01 09:00:00.000000000 +0900
++++ sysdeps/s390/s390-32/libgcc-compat.c	2003-03-02 19:42:19.000000000 +0900
+@@ -0,0 +1,83 @@
++/* pre-.hidden libgcc compatibility
++   Copyright (C) 2003 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by GOTO Masanori <gotom@debian.org>
++
++   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 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 int64_t __fixdfdi (double);
++int64_t __fixdfdi_internal (double d)
++{
++  return __fixdfdi (d);
++}
++symbol_version (__fixdfdi_internal, __fixdfdi, 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 __fixunsdfdi (double);
++int64_t __fixunsdfdi_internal (double d)
++{
++  return __fixunsdfdi (d);
++}
++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, 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);
++
++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);
++
++#endif

Deleted: glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-others.diff
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-others.diff	2006-05-28 11:44:53 UTC (rev 1553)
+++ glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-others.diff	2006-05-28 12:19:50 UTC (rev 1554)
@@ -1,905 +0,0 @@
-# DP: Description: libgcc-compat symbols for arm, m68k, ia64, and s390.
-# DP:		   ia64 is derived from RedHat's.
-# DP: Author: GOTO Masanori <gotom@debian.org>
-# DP: Upstream status: Not submitted
-# DP: Date: 2002-10-13, updated 2003-03-04, updated 2003-03-23
-
-diff -Nuar glibc-2.3.1.old/sysdeps/arm/Dist glibc-2.3.1/sysdeps/arm/Dist
---- glibc-2.3.1.old/sysdeps/arm/Dist	2002-08-27 21:06:52.000000000 +0900
-+++ glibc-2.3.1/sysdeps/arm/Dist	2003-03-01 00:29:42.000000000 +0900
-@@ -1,2 +1,3 @@
- ieee754.h
- bits/link.h
-+libgcc-compat.c
-diff -Nuar glibc-2.3.1.old/sysdeps/arm/Makefile glibc-2.3.1/sysdeps/arm/Makefile
---- glibc-2.3.1.old/sysdeps/arm/Makefile	1970-01-01 09:00:00.000000000 +0900
-+++ glibc-2.3.1/sysdeps/arm/Makefile	2003-03-01 00:29:42.000000000 +0900
-@@ -0,0 +1,7 @@
-+ifeq ($(subdir),csu)
-+ifeq (yes,$(build-shared))
-+# Compatibility
-+sysdep_routines += libgcc-compat
-+shared-only-routines += libgcc-compat
-+endif
-+endif
-diff -Nuar glibc-2.3.1.old/sysdeps/arm/Versions glibc-2.3.1/sysdeps/arm/Versions
---- glibc-2.3.1.old/sysdeps/arm/Versions	1970-01-01 09:00:00.000000000 +0900
-+++ glibc-2.3.1/sysdeps/arm/Versions	2003-03-01 18:22:10.000000000 +0900
-@@ -0,0 +1,16 @@
-+libc {
-+  GLIBC_2.0 {
-+    # Functions from libgcc.
-+    __ashldi3; __ashrdi3;
-+    __cmpdi2;
-+    __divsi3;
-+    __fixdfdi;
-+    __floatdidf;
-+    __floatdisf;
-+    __modsi3;
-+    __muldi3;
-+    __ucmpdi2;
-+    __udivsi3;
-+    __umodsi3;
-+  }
-+}
-diff -Nuar glibc-2.3.1.old/sysdeps/arm/libgcc-compat.c glibc-2.3.1/sysdeps/arm/libgcc-compat.c
---- glibc-2.3.1.old/sysdeps/arm/libgcc-compat.c	1970-01-01 09:00:00.000000000 +0900
-+++ glibc-2.3.1/sysdeps/arm/libgcc-compat.c	2003-03-02 19:40:20.000000000 +0900
-@@ -0,0 +1,111 @@
-+/* pre-.hidden libgcc compatibility
-+   Copyright (C) 2003 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by GOTO Masanori <gotom@debian.org>
-+
-+   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);
-+int32_t __ashrdi3_internal (int64_t u, int32_t b)
-+{
-+  return __ashrdi3 (u, b);
-+}
-+symbol_version (__ashrdi3_internal, __ashrdi3, 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 __divsi3 (int32_t, int32_t);
-+int32_t __divsi3_internal (int32_t u, int32_t v)
-+{
-+  return __divsi3 (u, v);
-+}
-+symbol_version (__divsi3_internal, __divsi3, 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 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);
-+
-+extern int32_t __modsi3 (int32_t, int32_t);
-+int32_t __modsi3_internal (int32_t u, int32_t v)
-+{
-+  return __modsi3 (u, v);
-+}
-+symbol_version (__modsi3_internal, __modsi3, GLIBC_2.0);
-+
-+extern int64_t __muldi3 (int64_t, int64_t);
-+int64_t __muldi3_internal (int64_t u, int64_t v)
-+{
-+  return __muldi3 (u, v);
-+}
-+symbol_version (__muldi3_internal, __muldi3, 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 int32_t __udivsi3 (int32_t, int32_t);
-+int32_t __udivsi3_internal (int32_t u, int32_t v)
-+{
-+  return __udivsi3 (u, v);
-+}
-+symbol_version (__udivsi3_internal, __udivsi3, GLIBC_2.0);
-+
-+extern int32_t __umodsi3 (int32_t, int32_t);
-+int32_t __umodsi3_internal (int32_t u, int32_t v)
-+{
-+  return __umodsi3 (u, v);
-+}
-+symbol_version (__umodsi3_internal, __umodsi3, GLIBC_2.0);
-+
-+#endif
-diff -Nuar glibc-2.3.1.old/sysdeps/ia64/Makefile glibc-2.3.1/sysdeps/ia64/Makefile
---- glibc-2.3.1.old/sysdeps/ia64/Makefile	2002-05-15 05:46:15.000000000 +0900
-+++ glibc-2.3.1/sysdeps/ia64/Makefile	2003-03-04 00:51:34.000000000 +0900
-@@ -12,8 +12,8 @@
- 
- ifeq (yes,$(build-shared))
- # Compatibility
--sysdep_routines += ia64libgcc
--shared-only-routines += ia64libgcc
-+sysdep_routines += libgcc-compat
-+shared-only-routines += libgcc-compat
- endif
- endif
- 
-diff -Nuar glibc-2.3.1.old/sysdeps/ia64/Versions glibc-2.3.1/sysdeps/ia64/Versions
---- glibc-2.3.1.old/sysdeps/ia64/Versions	2002-05-03 16:00:46.000000000 +0900
-+++ glibc-2.3.1/sysdeps/ia64/Versions	2003-03-04 01:14:39.000000000 +0900
-@@ -10,5 +10,9 @@
-     # Functions from libgcc.
-     __divtf3; __divdf3; __divsf3; __divdi3; __moddi3; __udivdi3; __umoddi3;
-     __multi3;
-+    __divsi3;
-+    __modsi3;
-+    __udivsi3;
-+    __umodsi3;
-   }
- }
-diff -Nuar glibc-2.3.1.old/sysdeps/ia64/ia64libgcc.S glibc-2.3.1/sysdeps/ia64/ia64libgcc.S
---- glibc-2.3.1.old/sysdeps/ia64/ia64libgcc.S	2002-05-15 05:46:15.000000000 +0900
-+++ glibc-2.3.1/sysdeps/ia64/ia64libgcc.S	2003-03-04 00:51:34.000000000 +0900
-@@ -1,350 +0,0 @@
--/* From the Intel IA-64 Optimization Guide, choose the minimum latency
--   alternative.  */
--
--#include <sysdep.h>
--#undef ret
--
--#include <shlib-compat.h>
--
--#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6)
--
--/* __divtf3
--   Compute a 80-bit IEEE double-extended quotient.
--   farg0 holds the dividend.  farg1 holds the divisor.  */
--
--ENTRY(___divtf3)
--	cmp.eq p7, p0 = r0, r0
--	frcpa.s0 f10, p6 = farg0, farg1
--	;;
--(p6)	cmp.ne p7, p0 = r0, r0
--	.pred.rel.mutex p6, p7
--(p6)	fnma.s1 f11 = farg1, f10, f1
--(p6)	fma.s1 f12 = farg0, f10, f0
--	;;
--(p6)	fma.s1 f13 = f11, f11, f0
--(p6)	fma.s1 f14 = f11, f11, f11
--	;;
--(p6)	fma.s1 f11 = f13, f13, f11
--(p6)	fma.s1 f13 = f14, f10, f10
--	;;
--(p6)	fma.s1 f10 = f13, f11, f10
--(p6)	fnma.s1 f11 = farg1, f12, farg0
--	;;
--(p6)	fma.s1 f11 = f11, f10, f12
--(p6)	fnma.s1 f12 = farg1, f10, f1
--	;;
--(p6)	fma.s1 f10 = f12, f10, f10
--(p6)	fnma.s1 f12 = farg1, f11, farg0
--	;;
--(p6)	fma.s0 fret0 = f12, f10, f11
--(p7)	mov fret0 = f10
--	br.ret.sptk rp
--END(___divtf3)
--	.symver ___divtf3, __divtf3@GLIBC_2.2
--
--/* __divdf3
--   Compute a 64-bit IEEE double quotient.
--   farg0 holds the dividend.  farg1 holds the divisor.  */
--
--ENTRY(___divdf3)
--	cmp.eq p7, p0 = r0, r0
--	frcpa.s0 f10, p6 = farg0, farg1
--	;;
--(p6)	cmp.ne p7, p0 = r0, r0
--	.pred.rel.mutex p6, p7
--(p6)	fmpy.s1 f11 = farg0, f10
--(p6)	fnma.s1 f12 = farg1, f10, f1
--	;;
--(p6)	fma.s1 f11 = f12, f11, f11
--(p6)	fmpy.s1 f13 = f12, f12
--	;;
--(p6)	fma.s1 f10 = f12, f10, f10
--(p6)	fma.s1 f11 = f13, f11, f11
--	;;
--(p6)	fmpy.s1 f12 = f13, f13
--(p6)	fma.s1 f10 = f13, f10, f10
--	;;
--(p6)	fma.d.s1 f11 = f12, f11, f11
--(p6)	fma.s1 f10 = f12, f10, f10
--	;;
--(p6)	fnma.d.s1 f8 = farg1, f11, farg0
--	;;
--(p6)	fma.d fret0 = f8, f10, f11
--(p7)	mov fret0 = f10
--	br.ret.sptk rp
--	;;
--END(___divdf3)
--	.symver	___divdf3, __divdf3@GLIBC_2.2
--
--/* __divsf3
--   Compute a 32-bit IEEE float quotient.
--   farg0 holds the dividend.  farg1 holds the divisor.  */
--
--ENTRY(___divsf3)
--	cmp.eq p7, p0 = r0, r0
--	frcpa.s0 f10, p6 = farg0, farg1
--	;;
--(p6)	cmp.ne p7, p0 = r0, r0
--	.pred.rel.mutex p6, p7
--(p6)	fmpy.s1 f8 = farg0, f10
--(p6)	fnma.s1 f9 = farg1, f10, f1
--	;;
--(p6)	fma.s1 f8 = f9, f8, f8
--(p6)	fmpy.s1 f9 = f9, f9
--	;;
--(p6)	fma.s1 f8 = f9, f8, f8
--(p6)	fmpy.s1 f9 = f9, f9
--	;;
--(p6)	fma.d.s1 f10 = f9, f8, f8
--	;;
--(p6)	fnorm.s.s0 fret0 = f10
--(p7)	mov fret0 = f10
--	br.ret.sptk rp
--	;;
--END(___divsf3)
--	.symver	___divsf3, __divsf3@GLIBC_2.2
--
--/* __divdi3
--   Compute a 64-bit integer quotient.
--   in0 holds the dividend.  in1 holds the divisor.  */
--
--ENTRY(___divdi3)
--	.regstk 2,0,0,0
--	/* Transfer inputs to FP registers.  */
--	setf.sig f8 = in0
--	setf.sig f9 = in1
--	;;
--	/* Convert the inputs to FP, so that they won't be treated as
--	   unsigned.  */
--	fcvt.xf f8 = f8
--	fcvt.xf f9 = f9
--	;;
--	/* Compute the reciprocal approximation.  */
--	frcpa.s1 f10, p6 = f8, f9
--	;;
--	/* 3 Newton-Raphson iterations.  */
--(p6)	fnma.s1 f11 = f9, f10, f1
--(p6)	fmpy.s1 f12 = f8, f10
--	;;
--(p6)	fmpy.s1 f13 = f11, f11
--(p6)	fma.s1 f12 = f11, f12, f12
--	;;
--(p6)	fma.s1 f10 = f11, f10, f10
--(p6)	fma.s1 f11 = f13, f12, f12
--	;;
--(p6)	fma.s1 f10 = f13, f10, f10
--(p6)	fnma.s1 f12 = f9, f11, f8
--	;;
--(p6)	fma.s1 f10 = f12, f10, f11
--	;;
--	/* Round quotient to an integer.  */
--	fcvt.fx.trunc.s1 f10 = f10
--	;;
--	/* Transfer result to GP registers.  */
--	getf.sig ret0 = f10
--	br.ret.sptk rp
--	;;
--END(___divdi3)
--	.symver	___divdi3, __divdi3@GLIBC_2.2
--
--/* __moddi3
--   Compute a 64-bit integer modulus.
--   in0 holds the dividend (a).  in1 holds the divisor (b).  */
--
--ENTRY(___moddi3)
--	.regstk 2,0,0,0
--	/* Transfer inputs to FP registers.  */
--	setf.sig f14 = in0
--	setf.sig f9 = in1
--	;;
--	/* Convert the inputs to FP, so that they won't be treated as
--	   unsigned.  */
--	fcvt.xf f8 = f14
--	fcvt.xf f9 = f9
--	;;
--	/* Compute the reciprocal approximation.  */
--	frcpa.s1 f10, p6 = f8, f9
--	;;
--	/* 3 Newton-Raphson iterations.  */
--(p6)	fmpy.s1 f12 = f8, f10
--(p6)	fnma.s1 f11 = f9, f10, f1
--	;;
--(p6)	fma.s1 f12 = f11, f12, f12
--(p6)	fmpy.s1 f13 = f11, f11
--	;;
--(p6)	fma.s1 f10 = f11, f10, f10
--(p6)	fma.s1 f11 = f13, f12, f12
--	;;
--	sub in1 = r0, in1
--(p6)	fma.s1 f10 = f13, f10, f10
--(p6)	fnma.s1 f12 = f9, f11, f8
--	;;
--	setf.sig f9 = in1
--(p6)	fma.s1 f10 = f12, f10, f11
--	;;
--	fcvt.fx.trunc.s1 f10 = f10
--	;;
--	/* r = q * (-b) + a  */
--	xma.l f10 = f10, f9, f14
--	;;
--	/* Transfer result to GP registers.  */
--	getf.sig ret0 = f10
--	br.ret.sptk rp
--	;;
--END(___moddi3)
--	.symver ___moddi3, __moddi3@GLIBC_2.2
--
--/* __udivdi3
--   Compute a 64-bit unsigned integer quotient.
--   in0 holds the dividend.  in1 holds the divisor.  */
--
--ENTRY(___udivdi3)
--	.regstk 2,0,0,0
--	/* Transfer inputs to FP registers.  */
--	setf.sig f8 = in0
--	setf.sig f9 = in1
--	;;
--	/* Convert the inputs to FP, to avoid FP software-assist faults.  */
--	fcvt.xuf.s1 f8 = f8
--	fcvt.xuf.s1 f9 = f9
--	;;
--	/* Compute the reciprocal approximation.  */
--	frcpa.s1 f10, p6 = f8, f9
--	;;
--	/* 3 Newton-Raphson iterations.  */
--(p6)	fnma.s1 f11 = f9, f10, f1
--(p6)	fmpy.s1 f12 = f8, f10
--	;;
--(p6)	fmpy.s1 f13 = f11, f11
--(p6)	fma.s1 f12 = f11, f12, f12
--	;;
--(p6)	fma.s1 f10 = f11, f10, f10
--(p6)	fma.s1 f11 = f13, f12, f12
--	;;
--(p6)	fma.s1 f10 = f13, f10, f10
--(p6)	fnma.s1 f12 = f9, f11, f8
--	;;
--(p6)	fma.s1 f10 = f12, f10, f11
--	;;
--	/* Round quotient to an unsigned integer.  */
--	fcvt.fxu.trunc.s1 f10 = f10
--	;;
--	/* Transfer result to GP registers.  */
--	getf.sig ret0 = f10
--	br.ret.sptk rp
--	;;
--END(___udivdi3)
--	.symver	___udivdi3, __udivdi3@GLIBC_2.2
--
--/* __umoddi3
--   Compute a 64-bit unsigned integer modulus.
--   in0 holds the dividend (a).  in1 holds the divisor (b).  */
--
--ENTRY(___umoddi3)
--	.regstk 2,0,0,0
--	/* Transfer inputs to FP registers.  */
--	setf.sig f14 = in0
--	setf.sig f9 = in1
--	;;
--	/* Convert the inputs to FP, to avoid FP software assist faults.  */
--	fcvt.xuf.s1 f8 = f14
--	fcvt.xuf.s1 f9 = f9
--	;;
--	/* Compute the reciprocal approximation.  */
--	frcpa.s1 f10, p6 = f8, f9
--	;;
--	/* 3 Newton-Raphson iterations.  */
--(p6)	fmpy.s1 f12 = f8, f10
--(p6)	fnma.s1 f11 = f9, f10, f1
--	;;
--(p6)	fma.s1 f12 = f11, f12, f12
--(p6)	fmpy.s1 f13 = f11, f11
--	;;
--(p6)	fma.s1 f10 = f11, f10, f10
--(p6)	fma.s1 f11 = f13, f12, f12
--	;;
--	sub in1 = r0, in1
--(p6)	fma.s1 f10 = f13, f10, f10
--(p6)	fnma.s1 f12 = f9, f11, f8
--	;;
--	setf.sig f9 = in1
--(p6)	fma.s1 f10 = f12, f10, f11
--	;;
--	/* Round quotient to an unsigned integer.  */
--	fcvt.fxu.trunc.s1 f10 = f10
--	;;
--	/* r = q * (-b) + a  */
--	xma.l f10 = f10, f9, f14
--	;;
--	/* Transfer result to GP registers.  */
--	getf.sig ret0 = f10
--	br.ret.sptk rp
--	;;
--END(___umoddi3)
--	.symver	___umoddi3, __umoddi3@GLIBC_2.2
--
--/* __multi3
--   Compute a 128-bit multiply of 128-bit multiplicands.
--   in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b).  */
--
--ENTRY(___multi3)
--	.regstk 4,0,0,0
--	setf.sig f6 = in1
--	movl r19 = 0xffffffff
--	setf.sig f7 = in2
--	;;
--	and r14 = r19, in0
--	;;
--	setf.sig f10 = r14
--	and r14 = r19, in2
--	xmpy.l f9 = f6, f7
--	;;
--	setf.sig f6 = r14
--	shr.u r14 = in0, 32
--	;;
--	setf.sig f7 = r14
--	shr.u r14 = in2, 32
--	;;
--	setf.sig f8 = r14
--	xmpy.l f11 = f10, f6
--	xmpy.l f6 = f7, f6
--	;;
--	getf.sig r16 = f11
--	xmpy.l f7 = f7, f8
--	;;
--	shr.u r14 = r16, 32
--	and r16 = r19, r16
--	getf.sig r17 = f6
--	setf.sig f6 = in0
--	;;
--	setf.sig f11 = r14
--	getf.sig r21 = f7
--	setf.sig f7 = in3
--	;;
--	xma.l f11 = f10, f8, f11
--	xma.l f6 = f6, f7, f9
--	;;
--	getf.sig r18 = f11
--	;;
--	add r18 = r18, r17
--	;;
--	and r15 = r19, r18
--	cmp.ltu p7, p6 = r18, r17
--	;;
--	getf.sig r22 = f6
--(p7)	adds r14 = 1, r19
--	;;
--(p7)	add r21 = r21, r14
--	shr.u r14 = r18, 32
--	shl r15 = r15, 32
--	;;
--	add r20 = r21, r14
--	;;
--	add ret0 = r15, r16
--	add ret1 = r22, r20
--	br.ret.sptk rp
--	;;
--END(___multi3)
--	.symver	___multi3, __multi3@GLIBC_2.2
--
--#endif
-diff -Nuar glibc-2.3.1.old/sysdeps/ia64/libgcc-compat.c glibc-2.3.1/sysdeps/ia64/libgcc-compat.c
---- glibc-2.3.1.old/sysdeps/ia64/libgcc-compat.c	1970-01-01 09:00:00.000000000 +0900
-+++ glibc-2.3.1/sysdeps/ia64/libgcc-compat.c	2003-03-04 02:24:15.000000000 +0900
-@@ -0,0 +1,112 @@
-+/* 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_2, GLIBC_2_2_6)
-+
-+typedef int int128_t __attribute__((__mode__(TI)));
-+
-+extern long double __divtf3 (long double, long double) attribute_hidden;
-+long double INTUSE (__divtf3) (long double x, long double y)
-+{
-+  return __divtf3 (x, y);
-+}
-+symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2);
-+
-+extern double __divdf3 (double, double) attribute_hidden;
-+double INTUSE (__divdf3) (double x, double y)
-+{
-+  return __divdf3 (x, y);
-+}
-+symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2);
-+
-+extern float __divsf3 (float, float) attribute_hidden;
-+float INTUSE (__divsf3) (float x, float y)
-+{
-+  return __divsf3 (x, y);
-+}
-+symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2);
-+
-+extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden;
-+int64_t INTUSE (__divdi3) (int64_t x, int64_t y)
-+{
-+  return __divdi3 (x, y);
-+}
-+symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2);
-+
-+extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden;
-+int64_t INTUSE (__moddi3) (int64_t x, int64_t y)
-+{
-+  return __moddi3 (x, y);
-+}
-+symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2);
-+
-+extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden;
-+uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y)
-+{
-+  return __udivdi3 (x, y);
-+}
-+symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2);
-+
-+extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden;
-+uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y)
-+{
-+  return __umoddi3 (x, y);
-+}
-+symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2);
-+
-+extern int128_t __multi3 (int128_t, int128_t) attribute_hidden;
-+int128_t INTUSE (__multi3) (int128_t x, int128_t y)
-+{
-+  return __multi3 (x, y);
-+}
-+symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2);
-+
-+extern int64_t __divsi3 (int64_t, int64_t) attribute_hidden;
-+int64_t INTUSE (__divsi3) (int64_t x, int64_t y)
-+{
-+  return __divsi3 (x, y);
-+}
-+symbol_version (INTUSE (__divsi3), __divsi3, GLIBC_2.2);
-+
-+extern int64_t __modsi3 (int64_t, int64_t) attribute_hidden;
-+int64_t INTUSE (__modsi3) (int64_t x, int64_t y)
-+{
-+  return __modsi3 (x, y);
-+}
-+symbol_version (INTUSE (__modsi3), __modsi3, GLIBC_2.2);
-+
-+extern uint64_t __udivsi3 (uint64_t, uint64_t) attribute_hidden;
-+uint64_t INTUSE (__udivsi3) (uint64_t x, uint64_t y)
-+{
-+  return __udivsi3 (x, y);
-+}
-+symbol_version (INTUSE (__udivsi3), __udivsi3, GLIBC_2.2);
-+
-+extern uint64_t __umodsi3 (uint64_t, uint64_t) attribute_hidden;
-+uint64_t INTUSE (__umodsi3) (uint64_t x, uint64_t y)
-+{
-+  return __umodsi3 (x, y);
-+}
-+symbol_version (INTUSE (__umodsi3), __umodsi3, GLIBC_2.2);
-+
-+#endif
-diff -Nuar glibc-2.3.1.old/sysdeps/m68k/Deps glibc-2.3.1/sysdeps/m68k/Deps
---- glibc-2.3.1.old/sysdeps/m68k/Deps	1970-01-01 09:00:00.000000000 +0900
-+++ glibc-2.3.1/sysdeps/m68k/Deps	2003-03-01 00:29:42.000000000 +0900
-@@ -0,0 +1 @@
-+libgcc-compat.c
-diff -Nuar glibc-2.3.1.old/sysdeps/m68k/Makefile glibc-2.3.1/sysdeps/m68k/Makefile
---- glibc-2.3.1.old/sysdeps/m68k/Makefile	2003-02-27 19:29:49.000000000 +0900
-+++ glibc-2.3.1/sysdeps/m68k/Makefile	2003-03-01 00:29:42.000000000 +0900
-@@ -45,3 +45,11 @@
- # Build objects in libc_nonshared.a with -fPIC (instead of -fpic) to avoid
- # possible linkage problems.
- CFLAGS-.oS += -fPIC
-+
-+ifeq ($(subdir),csu)
-+ifeq (yes,$(build-shared))
-+# Compatibility
-+sysdep_routines += libgcc-compat
-+shared-only-routines += libgcc-compat
-+endif
-+endif
-diff -Nuar glibc-2.3.1.old/sysdeps/m68k/Versions glibc-2.3.1/sysdeps/m68k/Versions
---- glibc-2.3.1.old/sysdeps/m68k/Versions	2000-06-15 15:54:28.000000000 +0900
-+++ glibc-2.3.1/sysdeps/m68k/Versions	2003-03-02 01:12:58.000000000 +0900
-@@ -2,5 +2,13 @@
-   GLIBC_2.0 {
-     # Functions from libgcc.
-     __divdi3; __moddi3; __udivdi3; __umoddi3;
-+    __ashldi3;
-+    __ashrdi3;
-+    __fixdfdi;
-+    __fixsfdi;
-+    __fixunsdfdi;
-+    __fixunssfdi;
-+    __floatdidf;
-+    __floatdisf;
-   }
- }
-diff -Nuar glibc-2.3.1.old/sysdeps/m68k/libgcc-compat.c glibc-2.3.1/sysdeps/m68k/libgcc-compat.c
---- glibc-2.3.1.old/sysdeps/m68k/libgcc-compat.c	1970-01-01 09:00:00.000000000 +0900
-+++ glibc-2.3.1/sysdeps/m68k/libgcc-compat.c	2003-03-02 13:26:49.000000000 +0900
-@@ -0,0 +1,83 @@
-+/* pre-.hidden libgcc compatibility
-+   Copyright (C) 2003 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by GOTO Masanori <gotom@debian.org>
-+
-+   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 __fixdfdi (double);
-+int64_t __fixdfdi_internal (double d)
-+{
-+  return __fixdfdi (d);
-+}
-+symbol_version (__fixdfdi_internal, __fixdfdi, 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 __fixunsdfdi (double);
-+int64_t __fixunsdfdi_internal (double d)
-+{
-+  return __fixunsdfdi (d);
-+}
-+symbol_version (__fixunsdfdi_internal, __fixunsdfdi, 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
-diff -Nuar glibc-2.3.1.old/sysdeps/s390/s390-32/Dist glibc-2.3.1/sysdeps/s390/s390-32/Dist
---- glibc-2.3.1.old/sysdeps/s390/s390-32/Dist	2001-03-27 14:14:38.000000000 +0900
-+++ glibc-2.3.1/sysdeps/s390/s390-32/Dist	2003-03-02 11:09:37.000000000 +0900
-@@ -1 +1,2 @@
- s390-mcount.S
-+libgcc-compat.c
-diff -Nuar glibc-2.3.1.old/sysdeps/s390/s390-32/Makefile glibc-2.3.1/sysdeps/s390/s390-32/Makefile
---- glibc-2.3.1.old/sysdeps/s390/s390-32/Makefile	2002-09-19 15:42:09.000000000 +0900
-+++ glibc-2.3.1/sysdeps/s390/s390-32/Makefile	2003-03-02 11:09:11.000000000 +0900
-@@ -9,3 +9,11 @@
- CFLAGS-dl-load.c += -Wno-unused
- CFLAGS-dl-reloc.c += -Wno-unused
- endif
-+
-+ifeq ($(subdir),csu)
-+ifeq (yes,$(build-shared))
-+# Compatibility
-+sysdep_routines += libgcc-compat
-+shared-only-routines += libgcc-compat
-+endif
-+endif
-diff -Nuar glibc-2.3.1.old/sysdeps/s390/s390-32/Versions glibc-2.3.1/sysdeps/s390/s390-32/Versions
---- glibc-2.3.1.old/sysdeps/s390/s390-32/Versions	2001-03-16 17:15:07.000000000 +0900
-+++ glibc-2.3.1/sysdeps/s390/s390-32/Versions	2003-03-02 11:08:03.000000000 +0900
-@@ -2,5 +2,13 @@
-   GLIBC_2.0 {
-     # Functions from libgcc.
-     __divdi3; __moddi3; __udivdi3; __umoddi3;
-+    __cmpdi2;
-+    __fixdfdi;
-+    __fixsfdi;
-+    __fixunsdfdi;
-+    __fixunssfdi;
-+    __floatdidf;
-+    __floatdisf;
-+    __ucmpdi2;
-   }
- }
-diff -Nuar glibc-2.3.1.old/sysdeps/s390/s390-32/libgcc-compat.c glibc-2.3.1/sysdeps/s390/s390-32/libgcc-compat.c
---- glibc-2.3.1.old/sysdeps/s390/s390-32/libgcc-compat.c	1970-01-01 09:00:00.000000000 +0900
-+++ glibc-2.3.1/sysdeps/s390/s390-32/libgcc-compat.c	2003-03-02 19:42:19.000000000 +0900
-@@ -0,0 +1,83 @@
-+/* pre-.hidden libgcc compatibility
-+   Copyright (C) 2003 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by GOTO Masanori <gotom@debian.org>
-+
-+   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 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 int64_t __fixdfdi (double);
-+int64_t __fixdfdi_internal (double d)
-+{
-+  return __fixdfdi (d);
-+}
-+symbol_version (__fixdfdi_internal, __fixdfdi, 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 __fixunsdfdi (double);
-+int64_t __fixunsdfdi_internal (double d)
-+{
-+  return __fixunsdfdi (d);
-+}
-+symbol_version (__fixunsdfdi_internal, __fixunsdfdi, 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);
-+
-+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);
-+
-+#endif

Added: glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-ports.diff
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-ports.diff	2006-05-28 11:44:53 UTC (rev 1553)
+++ glibc-package/branches/glibc-2.4/debian/patches/any/local-libgcc-compat-ports.diff	2006-05-28 12:19:50 UTC (rev 1554)
@@ -0,0 +1,370 @@
+# DP: Description: libgcc-compat symbols for mips, arm, m68k
+# DP: Author: Guido Guenther, GOTO Masanori
+# DP: Upstream status: Not submitted
+# DP: Date: 2002-10-13, updated 2006-05-28
+
+--- ports/sysdeps/mips/Makefile.orig	Sun Oct 13 14:45:56 2002
++++ ports/sysdeps/mips/Makefile	Sun Oct 13 14:51:20 2002
+@@ -10,3 +10,11 @@
+ ifeq ($(subdir),rt)
+ librt-sysdep_routines += rt-sysdep
+ endif
++
++ifeq ($(subdir),csu)
++ifeq (yes,$(build-shared))
++# Compatibility
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
++endif
++endif
+--- /dev/null	Sat Mar 16 18:32:44 2002
++++ ports/sysdeps/mips/libgcc-compat.c	Sun Oct 20 17:11:59 2002
+@@ -0,0 +1,66 @@
++/* pre-.hidden libgcc compatibility
++   Copyright (C) 2002 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Guido Guenther <agx@sigxcpu.org>
++
++   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 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 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
+--- /dev/null	Sat Mar 16 18:32:44 2002
++++ ports/sysdeps/mips/Versions	Sun Oct 20 17:12:00 2002
+@@ -0,0 +1,8 @@
++libc {
++  GLIBC_2.0 {
++    # Functions from libgcc.
++    __cmpdi2; __ucmpdi2;
++    __divdi3; __moddi3; __udivdi3; __umoddi3;
++    __fixdfdi; __floatdidf; __floatdisf;
++  }
++}
+diff -Nuar sysdeps/arm/Makefile sysdeps/arm/Makefile
+--- ports/sysdeps/arm/Makefile	1970-01-01 09:00:00.000000000 +0900
++++ ports/sysdeps/arm/Makefile	2003-03-01 00:29:42.000000000 +0900
+@@ -0,0 +1,7 @@
++ifeq ($(subdir),csu)
++ifeq (yes,$(build-shared))
++# Compatibility
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
++endif
++endif
+diff -Nuar sysdeps/arm/Versions sysdeps/arm/Versions
+--- ports/sysdeps/arm/Versions	1970-01-01 09:00:00.000000000 +0900
++++ ports/sysdeps/arm/Versions	2003-03-01 18:22:10.000000000 +0900
+@@ -0,0 +1,16 @@
++libc {
++  GLIBC_2.0 {
++    # Functions from libgcc.
++    __ashldi3; __ashrdi3;
++    __cmpdi2;
++    __divsi3;
++    __fixdfdi;
++    __floatdidf;
++    __floatdisf;
++    __modsi3;
++    __muldi3;
++    __ucmpdi2;
++    __udivsi3;
++    __umodsi3;
++  }
++}
+diff -Nuar sysdeps/arm/libgcc-compat.c sysdeps/arm/libgcc-compat.c
+--- ports/sysdeps/arm/libgcc-compat.c	1970-01-01 09:00:00.000000000 +0900
++++ ports/sysdeps/arm/libgcc-compat.c	2003-03-02 19:40:20.000000000 +0900
+@@ -0,0 +1,111 @@
++/* pre-.hidden libgcc compatibility
++   Copyright (C) 2003 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by GOTO Masanori <gotom@debian.org>
++
++   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);
++int32_t __ashrdi3_internal (int64_t u, int32_t b)
++{
++  return __ashrdi3 (u, b);
++}
++symbol_version (__ashrdi3_internal, __ashrdi3, 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 __divsi3 (int32_t, int32_t);
++int32_t __divsi3_internal (int32_t u, int32_t v)
++{
++  return __divsi3 (u, v);
++}
++symbol_version (__divsi3_internal, __divsi3, 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 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);
++
++extern int32_t __modsi3 (int32_t, int32_t);
++int32_t __modsi3_internal (int32_t u, int32_t v)
++{
++  return __modsi3 (u, v);
++}
++symbol_version (__modsi3_internal, __modsi3, GLIBC_2.0);
++
++extern int64_t __muldi3 (int64_t, int64_t);
++int64_t __muldi3_internal (int64_t u, int64_t v)
++{
++  return __muldi3 (u, v);
++}
++symbol_version (__muldi3_internal, __muldi3, 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 int32_t __udivsi3 (int32_t, int32_t);
++int32_t __udivsi3_internal (int32_t u, int32_t v)
++{
++  return __udivsi3 (u, v);
++}
++symbol_version (__udivsi3_internal, __udivsi3, GLIBC_2.0);
++
++extern int32_t __umodsi3 (int32_t, int32_t);
++int32_t __umodsi3_internal (int32_t u, int32_t v)
++{
++  return __umodsi3 (u, v);
++}
++symbol_version (__umodsi3_internal, __umodsi3, GLIBC_2.0);
++
++#endif
+diff -Nuar sysdeps/m68k/Deps sysdeps/m68k/Deps
+--- ports/sysdeps/m68k/Deps	1970-01-01 09:00:00.000000000 +0900
++++ ports/sysdeps/m68k/Deps	2003-03-01 00:29:42.000000000 +0900
+@@ -0,0 +1 @@
++libgcc-compat.c
+diff -Nuar sysdeps/m68k/Makefile sysdeps/m68k/Makefile
+--- ports/sysdeps/m68k/Makefile	2003-02-27 19:29:49.000000000 +0900
++++ ports/sysdeps/m68k/Makefile	2003-03-01 00:29:42.000000000 +0900
+@@ -36,3 +36,11 @@
+ ifeq ($(subdir),elf)
+ CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused
+ endif
++
++ifeq ($(subdir),csu)
++ifeq (yes,$(build-shared))
++# Compatibility
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
++endif
++endif
+diff -Nuar sysdeps/m68k/Versions sysdeps/m68k/Versions
+--- ports/sysdeps/m68k/Versions	2000-06-15 15:54:28.000000000 +0900
++++ ports/sysdeps/m68k/Versions	2003-03-02 01:12:58.000000000 +0900
+@@ -2,6 +2,14 @@
+   GLIBC_2.0 {
+     # Functions from libgcc.
+     __divdi3; __moddi3; __udivdi3; __umoddi3;
++    __ashldi3;
++    __ashrdi3;
++    __fixdfdi;
++    __fixsfdi;
++    __fixunsdfdi;
++    __fixunssfdi;
++    __floatdidf;
++    __floatdisf;
+   }
+ }
+ libm {
+diff -Nuar sysdeps/m68k/libgcc-compat.c sysdeps/m68k/libgcc-compat.c
+--- ports/sysdeps/m68k/libgcc-compat.c	1970-01-01 09:00:00.000000000 +0900
++++ ports/sysdeps/m68k/libgcc-compat.c	2003-03-02 13:26:49.000000000 +0900
+@@ -0,0 +1,83 @@
++/* pre-.hidden libgcc compatibility
++   Copyright (C) 2003 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by GOTO Masanori <gotom@debian.org>
++
++   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 __fixdfdi (double);
++int64_t __fixdfdi_internal (double d)
++{
++  return __fixdfdi (d);
++}
++symbol_version (__fixdfdi_internal, __fixdfdi, 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 __fixunsdfdi (double);
++int64_t __fixunsdfdi_internal (double d)
++{
++  return __fixunsdfdi (d);
++}
++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, 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

Modified: glibc-package/branches/glibc-2.4/debian/patches/series
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/series	2006-05-28 11:44:53 UTC (rev 1553)
+++ glibc-package/branches/glibc-2.4/debian/patches/series	2006-05-28 12:19:50 UTC (rev 1554)
@@ -115,8 +115,8 @@
 any/local-ldconfig.diff -p0
 any/local-ldconfig-multiarch.diff -p1
 any/local-ldconfig-tls.diff -p1
-#any/local-libgcc-compat-all.diff -p0
-#any/local-libgcc-compat-others.diff -p1
+any/local-libgcc-compat-main.diff -p0
+any/local-libgcc-compat-ports.diff -p0
 any/local-libgcc-static.diff -p0
 any/local-linuxthreads-sizefix.diff -p1
 any/local-localedef-fix-trampoline.diff -p1



Reply to: