summaryrefslogtreecommitdiff
path: root/patches/gcc/3.4.0
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc/3.4.0')
-rw-r--r--patches/gcc/3.4.0/gcc-3.3.3h-ppc-asm-spec.patch88
-rw-r--r--patches/gcc/3.4.0/gcc-3.4.0-arm-bigendian.patch70
-rw-r--r--patches/gcc/3.4.0/gcc-3.4.0-arm-lib1asm.patch27
-rw-r--r--patches/gcc/3.4.0/gcc-3.4.0-arm-nolibfloat.patch24
-rw-r--r--patches/gcc/3.4.0/gcc-3.4.0-pr14808-refix.patch46
-rw-r--r--patches/gcc/3.4.0/gcc-3.4.0-ultrasparc3-default64.patch52
-rw-r--r--patches/gcc/3.4.0/pr13250-fix.patch19
-rw-r--r--patches/gcc/3.4.0/pr15647-fix.patch288
8 files changed, 614 insertions, 0 deletions
diff --git a/patches/gcc/3.4.0/gcc-3.3.3h-ppc-asm-spec.patch b/patches/gcc/3.4.0/gcc-3.3.3h-ppc-asm-spec.patch
new file mode 100644
index 0000000..870024d
--- /dev/null
+++ b/patches/gcc/3.4.0/gcc-3.3.3h-ppc-asm-spec.patch
@@ -0,0 +1,88 @@
+Retrieved from http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.h.diff?r1=1.234.2.28&r2=1.234.2.29
+
+Should fix following error building gcc for ppc7450:
+
+/tmp/ccmfQBT9.s:5197: Error: Unrecognized opcode: `lvx'
+make[2]: *** [libgcc/./unwind-dw2.o] Error 1
+make[2]: Leaving directory `build-gcc-core/gcc'
+make[1]: *** [stmp-multilib] Error 2
+make[1]: Leaving directory `build-gcc-core/gcc'
+make: *** [all-gcc] Error 2
+
+(I'm not so sure about the unconditional -many it sends to binutils;
+that seems redundant?)
+
+Revision 1.234.2.29, Tue May 25 06:08:57 2004 UTC (6 days, 11 hours ago) by amodra
+Branch: hammer-3_3-branch
+Changes since 1.234.2.28: +15 -11 lines
+
+ * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
+ for power5 and rs64a. Correct condition for default. Correct power3,
+ 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
+
+===================================================================
+RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.h,v
+retrieving revision 1.234.2.28
+retrieving revision 1.234.2.29
+diff -u -r1.234.2.28 -r1.234.2.29
+--- gcc/gcc/config/rs6000/rs6000.h 2004/05/18 14:26:57 1.234.2.28
++++ gcc/gcc/config/rs6000/rs6000.h 2004/05/25 06:08:57 1.234.2.29
+@@ -51,20 +51,23 @@
+ "%{!mcpu*: \
+ %{mpower: %{!mpower2: -mpwr}} \
+ %{mpower2: -mpwrx} \
+- %{mpowerpc*: -mppc} \
++ %{mpowerpc64*: -mppc64} \
++ %{!mpowerpc64*: %{mpowerpc*: -mppc}} \
+ %{mno-power: %{!mpowerpc*: -mcom}} \
+- %{!mno-power: %{!mpower2: %(asm_default)}}} \
++ %{!mno-power: %{!mpower*: %(asm_default)}}} \
+ %{mcpu=common: -mcom} \
+ %{mcpu=power: -mpwr} \
+ %{mcpu=power2: -mpwrx} \
+-%{mcpu=power3: -m604} \
++%{mcpu=power3: -mppc64} \
+ %{mcpu=power4: -mpower4} \
++%{mcpu=power5: -mpower4} \
+ %{mcpu=powerpc: -mppc} \
+ %{mcpu=rios: -mpwr} \
+ %{mcpu=rios1: -mpwr} \
+ %{mcpu=rios2: -mpwrx} \
+ %{mcpu=rsc: -mpwr} \
+ %{mcpu=rsc1: -mpwr} \
++%{mcpu=rs64a: -mppc64} \
+ %{mcpu=401: -mppc} \
+ %{mcpu=403: -m403} \
+ %{mcpu=405: -m405} \
+@@ -79,22 +82,23 @@
+ %{mcpu=ec603e: -mppc} \
+ %{mcpu=604: -mppc} \
+ %{mcpu=604e: -mppc} \
+-%{mcpu=620: -mppc} \
+-%{mcpu=630: -m604} \
++%{mcpu=620: -mppc64} \
++%{mcpu=630: -mppc64} \
+ %{mcpu=740: -mppc} \
+-%{mcpu=7400: -mppc} \
+-%{mcpu=7450: -mppc} \
+-%{mcpu=G4: -mppc} \
+ %{mcpu=750: -mppc} \
+ %{mcpu=G3: -mppc} \
++%{mcpu=7400: -mppc -maltivec} \
++%{mcpu=7450: -mppc -maltivec} \
++%{mcpu=G4: -mppc -maltivec} \
+ %{mcpu=801: -mppc} \
+ %{mcpu=821: -mppc} \
+ %{mcpu=823: -mppc} \
+ %{mcpu=860: -mppc} \
+-%{mcpu=970: -mpower4} \
+-%{mcpu=G5: -mpower4} \
++%{mcpu=970: -mpower4 -maltivec} \
++%{mcpu=G5: -mpower4 -maltivec} \
+ %{mcpu=8540: -me500} \
+-%{maltivec: -maltivec}"
++%{maltivec: -maltivec} \
++-many"
+
+ #define CPP_DEFAULT_SPEC ""
+
diff --git a/patches/gcc/3.4.0/gcc-3.4.0-arm-bigendian.patch b/patches/gcc/3.4.0/gcc-3.4.0-arm-bigendian.patch
new file mode 100644
index 0000000..c9288c6
--- /dev/null
+++ b/patches/gcc/3.4.0/gcc-3.4.0-arm-bigendian.patch
@@ -0,0 +1,70 @@
+By Lennert Buytenhek <buytenh@wantstofly.org>
+Adds support for arm*b-linux* big-endian ARM targets
+
+See http://gcc.gnu.org/PR16350
+
+diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
+--- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
++++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-07-02 14:46:29.225443757 +0200
+@@ -30,17 +30,34 @@
+ /* Do not assume anything about header files. */
+ #define NO_IMPLICIT_EXTERN_C
+
++/*
++ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
++ * (big endian) configurations.
++ */
++#if TARGET_BIG_ENDIAN_DEFAULT
++#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
++#define TARGET_ENDIAN_OPTION "mbig-endian"
++#define TARGET_LINKER_EMULATION "armelfb_linux"
++#else
++#define TARGET_ENDIAN_DEFAULT 0
++#define TARGET_ENDIAN_OPTION "mlittle-endian"
++#define TARGET_LINKER_EMULATION "armelf_linux"
++#endif
++
+ /* Default is to use APCS-32 mode. */
+ #undef TARGET_DEFAULT
+-#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
++#define TARGET_DEFAULT \
++ ( ARM_FLAG_APCS_32 | \
++ ARM_FLAG_MMU_TRAPS | \
++ TARGET_ENDIAN_DEFAULT )
+
+ #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
+
+-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
++#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
+
+ #undef MULTILIB_DEFAULTS
+ #define MULTILIB_DEFAULTS \
+- { "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
++ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
+
+ #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
+
+@@ -89,7 +106,7 @@
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
+ -X \
+- %{mbig-endian:-EB}" \
++ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
+ SUBTARGET_EXTRA_LINK_SPEC
+
+ #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
+diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
+--- gcc-3.4.0.orig/gcc/config.gcc 2004-04-17 04:28:24.000000000 +0200
++++ gcc-3.4.0/gcc/config.gcc 2004-07-02 14:44:40.045822542 +0200
+@@ -666,6 +666,11 @@
+ ;;
+ arm*-*-linux*) # ARM GNU/Linux with ELF
+ tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
++ case $target in
++ arm*b-*)
++ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
++ ;;
++ esac
+ tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+ gnu_ld=yes
diff --git a/patches/gcc/3.4.0/gcc-3.4.0-arm-lib1asm.patch b/patches/gcc/3.4.0/gcc-3.4.0-arm-lib1asm.patch
new file mode 100644
index 0000000..69a79d5
--- /dev/null
+++ b/patches/gcc/3.4.0/gcc-3.4.0-arm-lib1asm.patch
@@ -0,0 +1,27 @@
+# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
+# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
+# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
+# Fixes errors like the following when building glibc (or any other executable
+# or shared library) when using gcc 3.4.0 for ARM with softfloat:
+#
+# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
+# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
+# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
+# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
+# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
+
+diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
+--- gcc-3.4.0-orig/gcc/config/arm/t-linux 2003-09-20 23:09:07.000000000 +0200
++++ gcc-3.4.0/gcc/config/arm/t-linux 2004-05-01 20:31:59.102846400 +0200
+@@ -4,7 +4,10 @@
+ LIBGCC2_DEBUG_CFLAGS = -g0
+
+ LIB1ASMSRC = arm/lib1funcs.asm
+-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
++LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
++ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
++ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
++ _fixsfsi _fixunssfsi
+
+ # MULTILIB_OPTIONS = mhard-float/msoft-float
+ # MULTILIB_DIRNAMES = hard-float soft-float
diff --git a/patches/gcc/3.4.0/gcc-3.4.0-arm-nolibfloat.patch b/patches/gcc/3.4.0/gcc-3.4.0-arm-nolibfloat.patch
new file mode 100644
index 0000000..43eed3e
--- /dev/null
+++ b/patches/gcc/3.4.0/gcc-3.4.0-arm-nolibfloat.patch
@@ -0,0 +1,24 @@
+# Dimitry Andric <dimitry@andric.com>, 2004-05-01
+#
+# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
+# anymore. (The required functions are now in libgcc.)
+#
+# Fixes errors like
+# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
+# collect2: ld returned 1 exit status
+# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
+# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
+
+diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
+--- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100
++++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-05-01 19:19:06.935979200 +0200
+@@ -55,7 +73,7 @@
+ %{shared:-lc} \
+ %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+
+-#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
++#define LIBGCC_SPEC "-lgcc"
+
+ /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
+ the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
+
diff --git a/patches/gcc/3.4.0/gcc-3.4.0-pr14808-refix.patch b/patches/gcc/3.4.0/gcc-3.4.0-pr14808-refix.patch
new file mode 100644
index 0000000..2a48c99
--- /dev/null
+++ b/patches/gcc/3.4.0/gcc-3.4.0-pr14808-refix.patch
@@ -0,0 +1,46 @@
+See http://gcc.gnu.org/ml/gcc/2004-06/msg00394.html
+This might fix the error
+
+strstream.s: Assembler messages:
+strstream.s:8390: Error: junk `(%ecx)' after expression
+strstream.s:8402: Error: junk `(%ecx)' after expression
+strstream.s:8551: Error: junk `(%ecx)' after expression
+strstream.s:8563: Error: junk `(%ecx)' after expression
+make[3]: *** [strstream.lo] Error 1
+make[3]: Leaving directory `i686-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-gcc/i686-unknown-linux-gnu/libstdc++-v3/src'
+
+when building a cygwin->linux cross-compiler with gcc-3.4.0,
+probably caused by patch to fix http://gcc.gnu.org/PR14808
+
+
+--- gcc-3.4.0/gcc/cp/method.c.old Sun Jun 6 22:46:04 2004
++++ gcc-3.4.0/gcc/cp/method.c Sun Jun 6 22:48:13 2004
+@@ -286,7 +286,7 @@
+ tree alias;
+ char buf[256];
+
+-#if defined (__CYGWIN__) || defined (__MINGW32__)
++#if defined (TARGET_IS_PE_COFF)
+ if (DECL_ONE_ONLY (function))
+ return function;
+ #endif
+@@ -404,7 +404,7 @@
+ push_to_top_level ();
+
+ #if defined (ASM_OUTPUT_DEF) \
+- && !(defined (__CYGWIN__) || defined (__MINGW32__))
++ && !defined (TARGET_IS_PE_COFF)
+ if (targetm.have_named_sections)
+ {
+ resolve_unique_section (function, 0, flag_function_sections);
+--- gcc-3.4.0/gcc/config/i386/cygming.h.old Sun Jun 6 22:50:46 2004
++++ gcc-3.4.0/gcc/config/i386/cygming.h Sun Jun 6 22:52:10 2004
+@@ -27,6 +27,8 @@
+
+ #define TARGET_EXECUTABLE_SUFFIX ".exe"
+
++#define TARGET_IS_PE_COFF 1
++
+ #include <stdio.h>
+
+ /* Masks for subtarget switches used by other files. */
diff --git a/patches/gcc/3.4.0/gcc-3.4.0-ultrasparc3-default64.patch b/patches/gcc/3.4.0/gcc-3.4.0-ultrasparc3-default64.patch
new file mode 100644
index 0000000..6357f56
--- /dev/null
+++ b/patches/gcc/3.4.0/gcc-3.4.0-ultrasparc3-default64.patch
@@ -0,0 +1,52 @@
+Date: Sat, 1 May 2004 21:08:10 +0200
+From: Jakub Jelinek <jakub@redhat.com>
+To: Dan Kegel <dank@kegel.com>, mark@codesourcery.com
+Cc: gcc-patches@gcc.gnu.org
+Subject: [PATCH] sparc64-linux --with-cpu=ultrasparc fix
+Message-ID: <20040501190810.GD5191@sunsite.ms.mff.cuni.cz>
+Reply-To: Jakub Jelinek <jakub@redhat.com>
+References: <40940B11.9080907@kegel.com>
+In-Reply-To: <40940B11.9080907@kegel.com>
+
+On Sat, May 01, 2004 at 01:39:45PM -0700, Dan Kegel wrote:
+> I'm having a bit of trouble configuring gcc-3.4.0 for sparc64-linux.
+> The resulting compiler defaults to sparc32, which is a problem
+> because it means having to figure out how to add
+> -mcpu=ultrasparc3 -Wa,-Av9a -m64 to CFLAGS for everything I build.
+> The worst part is that this even affects libgcc.a, which makes it
+> pretty hard to link any sparc64 executables. I could figure out
+> how mklibgcc and multilibbing work, and maybe thereby get a good 64 bit
+> libgcc.a,
+> but I'd kind of like to avoid that for the moment, and just really get
+> gcc to default to 64 bit output.
+>
+> What's the right way to get gcc to default to building 64 bit executables
+> when targeting sparc64-linux?
+
+There was TARGET_CPU_ultrasparc3 missing in linux64.h.
+I've commited the following fix to the trunk, but as it is not a regression,
+I'm not sure if Mark is ok with this for gcc-3_4-branch.
+
+2004-05-01 Jakub Jelinek <jakub@redhat.com>
+
+ * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
+ also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
+
+--- gcc-3.4.0/gcc/config/sparc/linux64.h.jj 2004-05-01 22:59:52.000000000 +0200
++++ gcc-3.4.0/gcc/config/sparc/linux64.h 2004-05-01 23:00:41.126176529 +0200
+@@ -39,7 +39,9 @@ Boston, MA 02111-1307, USA. */
+ #undef MD_EXEC_PREFIX
+ #undef MD_STARTFILE_PREFIX
+
+-#if TARGET_CPU_DEFAULT == TARGET_CPU_v9 || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc
++#if TARGET_CPU_DEFAULT == TARGET_CPU_v9 \
++ || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc \
++ || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3
+ /* A 64 bit v9 compiler with stack-bias,
+ in a Medium/Low code model environment. */
+
+
+ Jakub
+
+
+
diff --git a/patches/gcc/3.4.0/pr13250-fix.patch b/patches/gcc/3.4.0/pr13250-fix.patch
new file mode 100644
index 0000000..ce68bb1
--- /dev/null
+++ b/patches/gcc/3.4.0/pr13250-fix.patch
@@ -0,0 +1,19 @@
+See http://gcc.gnu.org/PR13250
+Fixes bad code generated when compiling SHA256 for SH processor
+
+===================================================================
+RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.md,v
+retrieving revision 1.171
+retrieving revision 1.172
+diff -u -r1.171 -r1.172
+--- gcc/gcc/config/sh/sh.md 2004/05/10 23:25:13 1.171
++++ gcc/gcc/config/sh/sh.md 2004/05/28 05:47:36 1.172
+@@ -2194,7 +2194,7 @@
+ parts[0] = gen_reg_rtx (SImode);
+ parts[1] = gen_reg_rtx (SImode);
+ emit_insn (gen_rotlsi3_16 (parts[2-choice], operands[1]));
+- parts[choice-1] = operands[1];
++ emit_move_insn (parts[choice-1], operands[1]);
+ emit_insn (gen_ashlsi3 (parts[0], parts[0], GEN_INT (8)));
+ emit_insn (gen_lshrsi3 (parts[1], parts[1], GEN_INT (8)));
+ emit_insn (gen_iorsi3 (operands[0], parts[0], parts[1]));
diff --git a/patches/gcc/3.4.0/pr15647-fix.patch b/patches/gcc/3.4.0/pr15647-fix.patch
new file mode 100644
index 0000000..6a4265d
--- /dev/null
+++ b/patches/gcc/3.4.0/pr15647-fix.patch
@@ -0,0 +1,288 @@
+Received: (qmail 11693 invoked from network); 26 May 2004 03:17:41 -0000
+Received: from unknown (HELO r-rr.iij4u.or.jp) (210.130.0.76)
+ by sourceware dot org with SMTP; 26 May 2004 03:17:41 -0000
+Received: from localhost (frgw.3in.ne.jp [210.251.121.226])
+ by r-rr dot iij4u dot or dot jp (8 dot 11 dot 6+IIJ/8 dot 11 dot 6) with ESMTP id i4Q3HbJ21421;
+ Wed, 26 May 2004 12:17:37 +0900 (JST)
+Date: Wed, 26 May 2004 12:13:58 +0900 (JST)
+Message-Id: <20040526.121358.39460214.kkojima@rr.iij4u.or.jp>
+To: gcc-patches at gcc dot gnu dot org
+Cc: Mark Mitchell <mark at codesourcery dot com>
+Subject: [PATCH] Fix PR target/15647 for sh-linux
+From: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
+Mime-Version: 1.0
+Content-Type: Text/Plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+Hi,
+
+The appended patch is to fix PR target/15647
+ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15647
+for linux.
+__udivsi3 is exported from libgcc_s.so.1 and gcc generates the code
+which assumes r1 will be not clobbered when calling __udivsi3 in SH3
+case. This is bad because r1 is clobbered by PLT.
+The another functions listed in the standard libgcc-std.ver which
+possively have similar problem are __ashlsi3, __ashrsi3 and __lshrsi3,
+though these are used only by SH1/2.
+The patch below simply uses an SH specific libgcc-std.ver which drops
+these functions. SH linux uses a linker script libgcc_s.so having
+libgcc.a as a suppementary library, so these functions given by
+libgcc.a when needed in the link time.
+Although mainline has one failure in bulding zlib which can be avoided
+with -fno-reorder-blocks for sh3-unknown-linux-gnu target, x86 cross
+to sh3-unknown-linux-gnu can be build successfully on mainline with
+this patch except the above failure. 3.4-branch successfully bootstraps
+with it and there are no new failures on the native sh4-unknown-linux-gnu.
+The patch is highly sh-linux specific and seems to be safe. I'll check
+it into mainline.
+The original PR is also for sh3 netbsd. I'd like to leave it for the
+netbsd experts.
+
+I think that it's too late for 3.3.4. Mark, is it also late for
+3.4.1?
+
+Regards,
+ kaz
+--
+2004-05-26 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
+ libgcc-std.ver.
+ * config/sh/libgcc-std.ver: New file.
+
+diff -u3prN ORIG-gcc/gcc/config/sh/t-linux LOCAL-gcc/gcc/config/sh/t-linux
+--- ORIG-gcc/gcc/config/sh/t-linux Mon Feb 16 20:13:25 2004
++++ LOCAL-gcc/gcc/config/sh/t-linux Tue May 25 18:25:48 2004
+@@ -11,8 +11,11 @@ MULTILIB_EXCEPTIONS=
+ EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
+
+ # Override t-slibgcc-elf-ver to export some libgcc symbols with
+-# the symbol versions that glibc used.
+-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/sh/libgcc-glibc.ver
++# the symbol versions that glibc used. Also use an sh specific
++# libgcc-std.ver to avoid to export some lib1func routines which
++# should not be called via PLT.
++SHLIB_MAPFILES = $(srcdir)/config/sh/libgcc-std.ver \
++ $(srcdir)/config/sh/libgcc-glibc.ver
+
+ # Override SHLIB_LINK and SHLIB_INSTALL to use linker script
+ # libgcc_s.so.
+diff -u3prN ORIG-gcc/gcc/config/sh/libgcc-std.ver LOCAL-gcc/gcc/config/sh/libgcc-std.ver
+--- ORIG-gcc/gcc/config/sh/libgcc-std.ver Thu Jan 1 09:00:00 1970
++++ LOCAL-gcc/gcc/config/sh/libgcc-std.ver Tue May 25 18:50:54 2004
+@@ -0,0 +1,213 @@
++GCC_3.0 {
++ # libgcc1 integer symbols
++ __absvsi2
++ __addvsi3
++ # __ashlsi3
++ # __ashrsi3
++ __divsi3
++ # __lshrsi3
++ __modsi3
++ __mulsi3
++ __mulvsi3
++ __negvsi2
++ __subvsi3
++ # __udivsi3
++ __umodsi3
++
++ # libgcc1 floating point symbols
++ __addsf3
++ __adddf3
++ __addxf3
++ __addtf3
++ __divsf3
++ __divdf3
++ __divxf3
++ __divtf3
++ __eqsf2
++ __eqdf2
++ __eqxf2
++ __eqtf2
++ __extenddfxf2
++ __extenddftf2
++ __extendsfdf2
++ __extendsfxf2
++ __extendsftf2
++ __fixsfsi
++ __fixdfsi
++ __fixxfsi
++ __fixtfsi
++ __floatsisf
++ __floatsidf
++ __floatsixf
++ __floatsitf
++ __gesf2
++ __gedf2
++ __gexf2
++ __getf2
++ __gtsf2
++ __gtdf2
++ __gtxf2
++ __gttf2
++ __lesf2
++ __ledf2
++ __lexf2
++ __letf2
++ __ltsf2
++ __ltdf2
++ __ltxf2
++ __lttf2
++ __mulsf3
++ __muldf3
++ __mulxf3
++ __multf3
++ __negsf2
++ __negdf2
++ __negxf2
++ __negtf2
++ __nesf2
++ __nedf2
++ __nexf2
++ __netf2
++ __subsf3
++ __subdf3
++ __subxf3
++ __subtf3
++ __truncdfsf2
++ __truncxfsf2
++ __trunctfsf2
++ __truncxfdf2
++ __trunctfdf2
++
++ # libgcc2 DImode arithmetic (for 32-bit targets).
++ __absvdi2
++ __addvdi3
++ __ashldi3
++ __ashrdi3
++ __cmpdi2
++ __divdi3
++ __ffsdi2
++ __fixdfdi
++ __fixsfdi
++ __fixtfdi
++ __fixxfdi
++ __fixunsdfdi
++ __fixunsdfsi
++ __fixunssfsi
++ __fixunssfdi
++ __fixunstfdi
++ __fixunstfsi
++ __fixunsxfdi
++ __fixunsxfsi
++ __floatdidf
++ __floatdisf
++ __floatdixf
++ __floatditf
++ __lshrdi3
++ __moddi3
++ __muldi3
++ __mulvdi3
++ __negdi2
++ __negvdi2
++ __subvdi3
++ __ucmpdi2
++ __udivdi3
++ __udivmoddi4
++ __umoddi3
++
++ # libgcc2 TImode arithmetic (for 64-bit targets).
++ __ashlti3
++ __ashrti3
++ __cmpti2
++ __divti3
++ __ffsti2
++ __fixdfti
++ __fixsfti
++ __fixtfti
++ __fixxfti
++ __lshrti3
++ __modti3
++ __multi3
++ __negti2
++ __ucmpti2
++ __udivmodti4
++ __udivti3
++ __umodti3
++ __fixunsdfti
++ __fixunssfti
++ __fixunstfti
++ __fixunsxfti
++ __floattidf
++ __floattisf
++ __floattixf
++ __floattitf
++
++ # Used to deal with trampoline initialization on some platforms
++ __clear_cache
++
++ # EH symbols
++ _Unwind_DeleteException
++ _Unwind_Find_FDE
++ _Unwind_ForcedUnwind
++ _Unwind_GetGR
++ _Unwind_GetIP
++ _Unwind_GetLanguageSpecificData
++ _Unwind_GetRegionStart
++ _Unwind_GetTextRelBase
++ _Unwind_GetDataRelBase
++ _Unwind_RaiseException
++ _Unwind_Resume
++ _Unwind_SetGR
++ _Unwind_SetIP
++ __deregister_frame
++ __deregister_frame_info
++ __deregister_frame_info_bases
++ __register_frame
++ __register_frame_info
++ __register_frame_info_bases
++ __register_frame_info_table
++ __register_frame_info_table_bases
++ __register_frame_table
++
++ # SjLj EH symbols
++ _Unwind_SjLj_Register
++ _Unwind_SjLj_Unregister
++ _Unwind_SjLj_RaiseException
++ _Unwind_SjLj_ForcedUnwind
++ _Unwind_SjLj_Resume
++}
++
++%inherit GCC_3.3 GCC_3.0
++GCC_3.3 {
++ _Unwind_FindEnclosingFunction
++ _Unwind_GetCFA
++ _Unwind_Backtrace
++ _Unwind_Resume_or_Rethrow
++ _Unwind_SjLj_Resume_or_Rethrow
++}
++
++%inherit GCC_3.3.1 GCC_3.3
++GCC_3.3.1 {
++ __gcc_personality_sj0
++ __gcc_personality_v0
++}
++
++%inherit GCC_3.3.2 GCC_3.3.1
++GCC_3.3.2 {
++}
++
++%inherit GCC_3.4 GCC_3.3.2
++GCC_3.4 {
++ # bit scanning and counting built-ins
++ __clzsi2
++ __clzdi2
++ __clzti2
++ __ctzsi2
++ __ctzdi2
++ __ctzti2
++ __popcountsi2
++ __popcountdi2
++ __popcountti2
++ __paritysi2
++ __paritydi2
++ __parityti2
++}
+