This is an automated email from the git hooks/post-receive script. aurel32 pushed a commit to branch glibc-2.26 in repository glibc.
commit bb64dc29479274b6735118c7f7c93f742d0288bc Author: Aurelien Jarno <[email protected]> Date: Sun Nov 19 11:30:48 2017 +0100 debian/patches/any/local-libgcc-compat-{abilists,main,ports}.diff: drop workaround for binaries built with some broken versions of GCC 3.2 more than 10 years ago. --- debian/changelog | 3 + .../patches/any/local-libgcc-compat-abilists.diff | 190 ----- debian/patches/any/local-libgcc-compat-main.diff | 395 --------- debian/patches/any/local-libgcc-compat-ports.diff | 946 --------------------- debian/patches/series | 3 - 5 files changed, 3 insertions(+), 1534 deletions(-) diff --git a/debian/changelog b/debian/changelog index 73f2c19..5d4f8c7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -115,6 +115,9 @@ glibc (2.26-0experimental0) UNRELEASED; urgency=medium * debian/testsuite-xfail-debian.mk: mark misc/tst-set_ppr as XFAIL on powerpc as it requires a recent CPU or a recent kernel for CPU feature detection. + * debian/patches/any/local-libgcc-compat-{abilists,main,ports}.diff: drop + workaround for binaries built with some broken versions of GCC 3.2 more + than 10 years ago. -- Adam Conrad <[email protected]> Sat, 02 Sep 2017 12:15:10 -0600 diff --git a/debian/patches/any/local-libgcc-compat-abilists.diff b/debian/patches/any/local-libgcc-compat-abilists.diff deleted file mode 100644 index 4a5685d..0000000 --- a/debian/patches/any/local-libgcc-compat-abilists.diff +++ /dev/null @@ -1,190 +0,0 @@ -Description: Fix abilists to match ABI additions from local-libgcc-compat* -Author: Adam Conrad <[email protected]> -Last-Update: 2015-03-19 - ---- glibc-2.21.orig/sysdeps/unix/sysv/linux/alpha/libc.abilist -+++ glibc-2.21/sysdeps/unix/sysv/linux/alpha/libc.abilist -@@ -179,6 +179,7 @@ - GLIBC_2.0 __mempcpy F - GLIBC_2.0 __monstartup F - GLIBC_2.0 __morecore D 0x8 -+GLIBC_2.0 __multi3 F - GLIBC_2.0 __nss_configure_lookup F - GLIBC_2.0 __nss_database_lookup F - GLIBC_2.0 __nss_group_lookup F ---- glibc-2.21.orig/sysdeps/unix/sysv/linux/i386/libc.abilist -+++ glibc-2.21/sysdeps/unix/sysv/linux/i386/libc.abilist -@@ -111,6 +111,7 @@ - GLIBC_2.0 __check_rhosts_file D 0x4 - GLIBC_2.0 __clone F - GLIBC_2.0 __close F -+GLIBC_2.0 __cmpdi2 F - GLIBC_2.0 __cmsg_nxthdr F - GLIBC_2.0 __connect F - GLIBC_2.0 __ctype32_b D 0x4 -@@ -134,6 +135,9 @@ - GLIBC_2.0 __finite F - GLIBC_2.0 __finitef F - GLIBC_2.0 __finitel F -+GLIBC_2.0 __fixunsdfdi F -+GLIBC_2.0 __fixunsxfdi F -+GLIBC_2.0 __floatdidf F - GLIBC_2.0 __fork F - GLIBC_2.0 __fpu_control D 0x2 - GLIBC_2.0 __frame_state_for F -@@ -232,6 +236,7 @@ - GLIBC_2.0 __sysv_signal F - GLIBC_2.0 __timezone D 0x4 - GLIBC_2.0 __tzname D 0x8 -+GLIBC_2.0 __ucmpdi2 F - GLIBC_2.0 __udivdi3 F - GLIBC_2.0 __uflow F - GLIBC_2.0 __umoddi3 F ---- glibc-2.21.orig/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist -+++ glibc-2.21/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist -@@ -111,6 +111,7 @@ - GLIBC_2.0 __check_rhosts_file D 0x4 - GLIBC_2.0 __clone F - GLIBC_2.0 __close F -+GLIBC_2.0 __cmpdi2 F - GLIBC_2.0 __cmsg_nxthdr F - GLIBC_2.0 __connect F - GLIBC_2.0 __ctype32_b D 0x4 -@@ -125,6 +126,7 @@ - GLIBC_2.0 __deregister_frame F - GLIBC_2.0 __deregister_frame_info F - GLIBC_2.0 __dgettext F -+GLIBC_2.0 __divdi3 F - GLIBC_2.0 __dup2 F - GLIBC_2.0 __environ D 0x4 - GLIBC_2.0 __errno_location F -@@ -133,6 +135,9 @@ - GLIBC_2.0 __finite F - GLIBC_2.0 __finitef F - GLIBC_2.0 __finitel F -+GLIBC_2.0 __fixdfdi F -+GLIBC_2.0 __floatdidf F -+GLIBC_2.0 __floatdisf F - GLIBC_2.0 __fork F - GLIBC_2.0 __fpu_control D 0x4 - GLIBC_2.0 __frame_state_for F -@@ -172,6 +177,7 @@ - GLIBC_2.0 __mbrtowc F - GLIBC_2.0 __memalign_hook D 0x4 - GLIBC_2.0 __mempcpy F -+GLIBC_2.0 __moddi3 F - GLIBC_2.0 __monstartup F - GLIBC_2.0 __morecore D 0x4 - GLIBC_2.0 __nss_configure_lookup F -@@ -230,7 +236,10 @@ - GLIBC_2.0 __sysv_signal F - GLIBC_2.0 __timezone D 0x4 - GLIBC_2.0 __tzname D 0x8 -+GLIBC_2.0 __ucmpdi2 F -+GLIBC_2.0 __udivdi3 F - GLIBC_2.0 __uflow F -+GLIBC_2.0 __umoddi3 F - GLIBC_2.0 __underflow F - GLIBC_2.0 __vfscanf F - GLIBC_2.0 __vsnprintf F ---- glibc-2.21.orig/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist -+++ glibc-2.21/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist -@@ -111,6 +111,7 @@ - GLIBC_2.0 __check_rhosts_file D 0x4 - GLIBC_2.0 __clone F - GLIBC_2.0 __close F -+GLIBC_2.0 __cmpdi2 F - GLIBC_2.0 __cmsg_nxthdr F - GLIBC_2.0 __connect F - GLIBC_2.0 __ctype32_b D 0x4 -@@ -134,6 +135,12 @@ - GLIBC_2.0 __finite F - GLIBC_2.0 __finitef F - GLIBC_2.0 __finitel F -+GLIBC_2.0 __fixdfdi F -+GLIBC_2.0 __fixsfdi F -+GLIBC_2.0 __fixunsdfdi F -+GLIBC_2.0 __fixunssfdi F -+GLIBC_2.0 __floatdidf F -+GLIBC_2.0 __floatdisf F - GLIBC_2.0 __fork F - GLIBC_2.0 __fpu_control D 0x4 - GLIBC_2.0 __frame_state_for F -@@ -232,6 +239,7 @@ - GLIBC_2.0 __sysv_signal F - GLIBC_2.0 __timezone D 0x4 - GLIBC_2.0 __tzname D 0x8 -+GLIBC_2.0 __ucmpdi2 F - GLIBC_2.0 __udivdi3 F - GLIBC_2.0 __uflow F - GLIBC_2.0 __umoddi3 F ---- glibc-2.21.orig/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist -+++ glibc-2.21/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist -@@ -110,6 +110,8 @@ - GLIBC_2.0 __argz_count F - GLIBC_2.0 __argz_next F - GLIBC_2.0 __argz_stringify F -+GLIBC_2.0 __ashldi3 F -+GLIBC_2.0 __ashrdi3 F - GLIBC_2.0 __assert_fail F - GLIBC_2.0 __assert_perror_fail F - GLIBC_2.0 __bsd_getpgrp F -@@ -117,6 +119,7 @@ - GLIBC_2.0 __check_rhosts_file D 0x4 - GLIBC_2.0 __clone F - GLIBC_2.0 __close F -+GLIBC_2.0 __cmpdi2 F - GLIBC_2.0 __cmsg_nxthdr F - GLIBC_2.0 __connect F - GLIBC_2.0 __ctype32_b D 0x4 -@@ -131,6 +134,7 @@ - GLIBC_2.0 __deregister_frame F - GLIBC_2.0 __deregister_frame_info F - GLIBC_2.0 __dgettext F -+GLIBC_2.0 __divdi3 F - GLIBC_2.0 __dup2 F - GLIBC_2.0 __environ D 0x4 - GLIBC_2.0 __errno_location F -@@ -139,6 +143,12 @@ - GLIBC_2.0 __finite F - GLIBC_2.0 __finitef F - GLIBC_2.0 __finitel F -+GLIBC_2.0 __fixdfdi F -+GLIBC_2.0 __fixsfdi F -+GLIBC_2.0 __fixunsdfdi F -+GLIBC_2.0 __fixunssfdi F -+GLIBC_2.0 __floatdidf F -+GLIBC_2.0 __floatdisf F - GLIBC_2.0 __fork F - GLIBC_2.0 __fpu_control D 0x4 - GLIBC_2.0 __frame_state_for F -@@ -171,6 +181,7 @@ - GLIBC_2.0 __libc_start_main F - GLIBC_2.0 __libc_valloc F - GLIBC_2.0 __lseek F -+GLIBC_2.0 __lshrdi3 F - GLIBC_2.0 __lxstat F - GLIBC_2.0 __malloc_hook D 0x4 - GLIBC_2.0 __malloc_initialize_hook D 0x4 -@@ -178,8 +189,10 @@ - GLIBC_2.0 __mbrtowc F - GLIBC_2.0 __memalign_hook D 0x4 - GLIBC_2.0 __mempcpy F -+GLIBC_2.0 __moddi3 F - GLIBC_2.0 __monstartup F - GLIBC_2.0 __morecore D 0x4 -+GLIBC_2.0 __muldi3 F - GLIBC_2.0 __nss_configure_lookup F - GLIBC_2.0 __nss_database_lookup F - GLIBC_2.0 __nss_group_lookup F -@@ -236,7 +249,10 @@ - GLIBC_2.0 __sysv_signal F - GLIBC_2.0 __timezone D 0x4 - GLIBC_2.0 __tzname D 0x8 -+GLIBC_2.0 __ucmpdi2 F -+GLIBC_2.0 __udivdi3 F - GLIBC_2.0 __uflow F -+GLIBC_2.0 __umoddi3 F - GLIBC_2.0 __underflow F - GLIBC_2.0 __vfscanf F - GLIBC_2.0 __vsnprintf F diff --git a/debian/patches/any/local-libgcc-compat-main.diff b/debian/patches/any/local-libgcc-compat-main.diff deleted file mode 100644 index 0404e0b..0000000 --- a/debian/patches/any/local-libgcc-compat-main.diff +++ /dev/null @@ -1,395 +0,0 @@ -# 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 - ---- - sysdeps/i386/Makefile | 8 ++ - sysdeps/i386/Versions | 3 - sysdeps/i386/libgcc-compat.c | 75 +++++++++++++++++++++ - sysdeps/s390/s390-32/Makefile | 8 ++ - sysdeps/s390/s390-32/Versions | 8 ++ - sysdeps/s390/s390-32/libgcc-compat.c | 83 +++++++++++++++++++++++ - sysdeps/sparc/sparc32/Makefile | 8 ++ - sysdeps/sparc/sparc32/Versions | 4 + - sysdeps/sparc/sparc32/libgcc-compat.c | 121 ++++++++++++++++++++++++++++++++++ - 9 files changed, 318 insertions(+) - ---- /dev/null -+++ b/sysdeps/i386/libgcc-compat.c -@@ -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 <[email protected]> -+ -+ 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 ---- a/sysdeps/i386/Makefile -+++ b/sysdeps/i386/Makefile -@@ -9,6 +9,14 @@ - sysdep_routines += cacheinfo - endif - -+ifeq ($(subdir),csu) -+ifeq (yes,$(build-shared)) -+# Compatibility -+sysdep_routines += libgcc-compat -+shared-only-routines += libgcc-compat -+endif -+endif -+ - ifeq ($(subdir),gmon) - sysdep_routines += i386-mcount - endif ---- a/sysdeps/i386/Versions -+++ b/sysdeps/i386/Versions -@@ -8,6 +8,9 @@ - GLIBC_2.0 { - # Functions from libgcc. - __divdi3; __moddi3; __udivdi3; __umoddi3; -+ __cmpdi2; __ucmpdi2; -+ __fixunsdfdi; __fixunssfdi; __fixunsxfdi; -+ __floatdidf; - } - GLIBC_2.1 { - # global variable ---- /dev/null -+++ b/sysdeps/sparc/sparc32/libgcc-compat.c -@@ -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 <[email protected]> -+ -+ 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 ---- a/sysdeps/sparc/sparc32/Makefile -+++ b/sysdeps/sparc/sparc32/Makefile -@@ -19,6 +19,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 ---- a/sysdeps/sparc/sparc32/Versions -+++ b/sysdeps/sparc/sparc32/Versions -@@ -1,6 +1,10 @@ - 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; - } - } - libm { ---- a/sysdeps/s390/s390-32/Makefile -+++ b/sysdeps/s390/s390-32/Makefile -@@ -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 ---- a/sysdeps/s390/s390-32/Versions -+++ b/sysdeps/s390/s390-32/Versions -@@ -2,5 +2,13 @@ - GLIBC_2.0 { - # Functions from libgcc. - __divdi3; __moddi3; __udivdi3; __umoddi3; -+ __cmpdi2; -+ __fixdfdi; -+ __fixsfdi; -+ __fixunsdfdi; -+ __fixunssfdi; -+ __floatdidf; -+ __floatdisf; -+ __ucmpdi2; - } - } ---- /dev/null -+++ b/sysdeps/s390/s390-32/libgcc-compat.c -@@ -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 <[email protected]> -+ -+ 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 diff --git a/debian/patches/any/local-libgcc-compat-ports.diff b/debian/patches/any/local-libgcc-compat-ports.diff deleted file mode 100644 index e7a886d..0000000 --- a/debian/patches/any/local-libgcc-compat-ports.diff +++ /dev/null @@ -1,946 +0,0 @@ -# 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-08-27 - ---- - sysdeps/alpha/Makefile | 8 - sysdeps/alpha/Versions | 2 - sysdeps/alpha/libgcc-compat.c | 35 +++ - sysdeps/arm/Makefile | 5 - sysdeps/arm/Versions | 14 + - sysdeps/arm/libgcc-compat.c | 111 +++++++++++ - sysdeps/ia64/Makefile | 4 - sysdeps/ia64/Versions | 4 - sysdeps/ia64/ia64libgcc.S | 350 ------------------------------------ - sysdeps/ia64/libgcc-compat.c | 112 +++++++++++ - sysdeps/m68k/Deps | 1 - sysdeps/m68k/Makefile | 8 - sysdeps/m68k/Versions | 8 - sysdeps/m68k/libgcc-compat.c | 83 ++++++++ - sysdeps/mips/mips32/Makefile | 8 - sysdeps/mips/mips32/Versions | 8 - sysdeps/mips/mips32/libgcc-compat.c | 66 ++++++ - 17 files changed, 475 insertions(+), 352 deletions(-) - ---- /dev/null -+++ b/sysdeps/mips/mips32/libgcc-compat.c -@@ -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 <[email protected]> -+ -+ 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 -+++ b/sysdeps/mips/mips32/Versions -@@ -0,0 +1,8 @@ -+libc { -+ GLIBC_2.0 { -+ # Functions from libgcc. -+ __cmpdi2; __ucmpdi2; -+ __divdi3; __moddi3; __udivdi3; __umoddi3; -+ __fixdfdi; __floatdidf; __floatdisf; -+ } -+} ---- a/sysdeps/arm/Makefile -+++ b/sysdeps/arm/Makefile -@@ -37,6 +37,11 @@ - endif - endif - endif -+ifeq (yes,$(build-shared)) -+# Compatibility -+sysdep_routines += libgcc-compat -+shared-only-routines += libgcc-compat -+endif - - ifeq ($(subdir),csu) - # get offset to rtld_global._dl_hwcap ---- a/sysdeps/arm/Versions -+++ b/sysdeps/arm/Versions -@@ -21,4 +21,18 @@ - # This set has to exist in some Versions file so we can use 2.19 in - # SHLIB_COMPAT. Since it didn't exist anywhere else, we add it here. - } -+ GLIBC_2.0 { -+ # Functions from libgcc. -+ __ashldi3; __ashrdi3; -+ __cmpdi2; -+ __divsi3; -+ __fixdfdi; -+ __floatdidf; -+ __floatdisf; -+ __modsi3; -+ __muldi3; -+ __ucmpdi2; -+ __udivsi3; -+ __umodsi3; -+ } - } ---- /dev/null -+++ b/sysdeps/arm/libgcc-compat.c -@@ -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 <[email protected]> -+ -+ 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 ---- /dev/null -+++ b/sysdeps/m68k/Deps -@@ -0,0 +1 @@ -+libgcc-compat.c ---- a/sysdeps/m68k/Makefile -+++ b/sysdeps/m68k/Makefile -@@ -47,3 +47,11 @@ - ifeq ($(subdir),gmon) - CFLAGS-mcount.c += -Wno-frame-address - endif -+ -+ifeq ($(subdir),csu) -+ifeq (yes,$(build-shared)) -+# Compatibility -+sysdep_routines += libgcc-compat -+shared-only-routines += libgcc-compat -+endif -+endif ---- a/sysdeps/m68k/Versions -+++ b/sysdeps/m68k/Versions -@@ -2,6 +2,14 @@ - GLIBC_2.0 { - # Functions from libgcc. - __divdi3; __moddi3; __udivdi3; __umoddi3; -+ __ashldi3; -+ __ashrdi3; -+ __fixdfdi; -+ __fixsfdi; -+ __fixunsdfdi; -+ __fixunssfdi; -+ __floatdidf; -+ __floatdisf; - } - } - libm { ---- /dev/null -+++ b/sysdeps/m68k/libgcc-compat.c -@@ -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 <[email protected]> -+ -+ 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 ---- a/sysdeps/mips/mips32/Makefile -+++ b/sysdeps/mips/mips32/Makefile -@@ -1,3 +1,11 @@ - ifeq ($(filter -mabi=32,$(CC)),) - CC += -mabi=32 - endif -+ -+ifeq ($(subdir),csu) -+ifeq (yes,$(build-shared)) -+# Compatibility -+sysdep_routines += libgcc-compat -+shared-only-routines += libgcc-compat -+endif -+endif ---- /dev/null -+++ b/sysdeps/alpha/libgcc-compat.c -@@ -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 <[email protected]> -+ -+ 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 __multi3_internal (int128_t x, int128_t y) -+{ -+ return __multi3 (x, y); -+} -+symbol_version (__multi3_internal, __multi3, GLIBC_2.0); -+ -+#endif ---- a/sysdeps/alpha/Versions -+++ b/sysdeps/alpha/Versions -@@ -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 { ---- a/sysdeps/alpha/Makefile -+++ b/sysdeps/alpha/Makefile -@@ -60,3 +60,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 ---- a/sysdeps/ia64/Makefile -+++ b/sysdeps/ia64/Makefile -@@ -10,8 +10,8 @@ - - ifeq (yes,$(build-shared)) - # Compatibility --sysdep_routines += ia64libgcc --shared-only-routines += ia64libgcc -+sysdep_routines += libgcc-compat -+shared-only-routines += libgcc-compat - endif - endif - ---- a/sysdeps/ia64/Versions -+++ b/sysdeps/ia64/Versions -@@ -10,6 +10,10 @@ - # Functions from libgcc. - __divtf3; __divdf3; __divsf3; __divdi3; __moddi3; __udivdi3; __umoddi3; - __multi3; -+ __divsi3; -+ __modsi3; -+ __udivsi3; -+ __umodsi3; - } - } - libm { ---- a/sysdeps/ia64/ia64libgcc.S -+++ /dev/null -@@ -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 ---- /dev/null -+++ b/sysdeps/ia64/libgcc-compat.c -@@ -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 __divtf3_internal (long double x, long double y) -+{ -+ return __divtf3 (x, y); -+} -+symbol_version (__divtf3_internal, __divtf3, GLIBC_2.2); -+ -+extern double __divdf3 (double, double) attribute_hidden; -+double __divdf3_internal (double x, double y) -+{ -+ return __divdf3 (x, y); -+} -+symbol_version (__divdf3_internal, __divdf3, GLIBC_2.2); -+ -+extern float __divsf3 (float, float) attribute_hidden; -+float __divsf3_internal (float x, float y) -+{ -+ return __divsf3 (x, y); -+} -+symbol_version (__divsf3_internal, __divsf3, GLIBC_2.2); -+ -+extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden; -+int64_t __divdi3_internal (int64_t x, int64_t y) -+{ -+ return __divdi3 (x, y); -+} -+symbol_version (__divdi3_internal, __divdi3, GLIBC_2.2); -+ -+extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden; -+int64_t __moddi3_internal (int64_t x, int64_t y) -+{ -+ return __moddi3 (x, y); -+} -+symbol_version (__moddi3_internal, __moddi3, GLIBC_2.2); -+ -+extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden; -+uint64_t __udivdi3_internal (uint64_t x, uint64_t y) -+{ -+ return __udivdi3 (x, y); -+} -+symbol_version (__udivdi3_internal, __udivdi3, GLIBC_2.2); -+ -+extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden; -+uint64_t __umoddi3_internal (uint64_t x, uint64_t y) -+{ -+ return __umoddi3 (x, y); -+} -+symbol_version (__umoddi3_internal, __umoddi3, GLIBC_2.2); -+ -+extern int128_t __multi3 (int128_t, int128_t) attribute_hidden; -+int128_t __multi3_internal (int128_t x, int128_t y) -+{ -+ return __multi3 (x, y); -+} -+symbol_version (__multi3_internal, __multi3, GLIBC_2.2); -+ -+extern int64_t __divsi3 (int64_t, int64_t) attribute_hidden; -+int64_t __divsi3_internal (int64_t x, int64_t y) -+{ -+ return __divsi3 (x, y); -+} -+symbol_version (__divsi3_internal, __divsi3, GLIBC_2.2); -+ -+extern int64_t __modsi3 (int64_t, int64_t) attribute_hidden; -+int64_t __modsi3_internal (int64_t x, int64_t y) -+{ -+ return __modsi3 (x, y); -+} -+symbol_version (__modsi3_internal, __modsi3, GLIBC_2.2); -+ -+extern uint64_t __udivsi3 (uint64_t, uint64_t) attribute_hidden; -+uint64_t __udivsi3_internal (uint64_t x, uint64_t y) -+{ -+ return __udivsi3 (x, y); -+} -+symbol_version (__udivsi3_internal, __udivsi3, GLIBC_2.2); -+ -+extern uint64_t __umodsi3 (uint64_t, uint64_t) attribute_hidden; -+uint64_t __umodsi3_internal (uint64_t x, uint64_t y) -+{ -+ return __umodsi3 (x, y); -+} -+symbol_version (__umodsi3_internal, __umodsi3, GLIBC_2.2); -+ -+#endif diff --git a/debian/patches/series b/debian/patches/series index a723657..4b1639a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -211,9 +211,6 @@ any/local-ld-multiarch.diff any/local-ldso-disable-hwcap.diff any/local-ldconfig.diff any/local-ldconfig-fsync.diff -any/local-libgcc-compat-main.diff -any/local-libgcc-compat-ports.diff -any/local-libgcc-compat-abilists.diff any/local-nss-upgrade.diff any/local-stubs_h.diff any/local-tcsetaddr.diff -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git

