Merge pull request #282 from bhundven/less_gcc_versions_part2

Less gcc versions part2
This commit is contained in:
Bryan Hundven 2015-12-07 18:41:02 -08:00
commit 2d3c70dd3d
127 changed files with 66 additions and 8241 deletions

View File

@ -64,60 +64,6 @@ config CC_GCC_V_4_8_5
prompt "4.8.5"
select CC_GCC_4_8
config CC_GCC_V_linaro_4_7
bool
prompt "linaro-4.7-2014.06"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_7
config CC_GCC_V_4_7_4
bool
prompt "4.7.4"
select CC_GCC_4_7
config CC_GCC_V_linaro_4_6
bool
prompt "linaro-4.6-2013.05"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_6
config CC_GCC_V_4_6_4
bool
prompt "4.6.4"
select CC_GCC_4_6
config CC_GCC_V_linaro_4_5
bool
prompt "linaro-4.5-2012.03"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_5
config CC_GCC_V_4_5_4
bool
prompt "4.5.4"
select CC_GCC_4_5
config CC_GCC_V_linaro_4_4
bool
prompt "linaro-4.4-2011.02-0"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_4
config CC_GCC_V_4_4_7
bool
prompt "4.4.7"
select CC_GCC_4_4
config CC_GCC_V_4_3_6
bool
prompt "4.3.6"
select CC_GCC_4_3
config CC_GCC_V_4_2_4
bool
prompt "4.2.4"
select CC_GCC_4_2
endchoice
config CC_GCC_CUSTOM
@ -140,79 +86,6 @@ config CC_GCC_CUSTOM_LOCATION
endif #CC_GCC_CUSTOM
config CC_GCC_4_2
bool
select CC_GCC_4_2_or_later
config CC_GCC_4_2_or_later
bool
config CC_GCC_4_3
bool
select CC_GCC_4_3_or_later
select CC_GCC_USE_GMP_MPFR
select CC_GCC_HAS_PKGVERSION_BUGURL
config CC_GCC_4_3_or_later
bool
select CC_GCC_4_2_or_later
config CC_GCC_4_4
bool
select CC_GCC_4_4_or_later
select CC_GCC_USE_GMP_MPFR
select CC_GCC_HAS_GRAPHITE
select CC_GCC_HAS_PKGVERSION_BUGURL
config CC_GCC_4_4_or_later
bool
select CC_GCC_4_3_or_later
config CC_GCC_4_5
bool
select CC_GCC_4_5_or_later
select CC_GCC_USE_GMP_MPFR
select CC_GCC_USE_MPC
select CC_GCC_HAS_GRAPHITE
select CC_GCC_HAS_LTO
select CC_GCC_HAS_PKGVERSION_BUGURL
select CC_GCC_HAS_BUILD_ID
config CC_GCC_4_5_or_later
bool
select CC_GCC_4_4_or_later
config CC_GCC_4_6
bool
select CC_GCC_4_6_or_later
select CC_GCC_USE_GMP_MPFR
select CC_GCC_USE_MPC
select CC_GCC_HAS_GRAPHITE
select CC_GCC_HAS_LTO
select CC_GCC_HAS_PKGVERSION_BUGURL
select CC_GCC_HAS_BUILD_ID
select CC_GCC_HAS_LIBQUADMATH
config CC_GCC_4_6_or_later
bool
select CC_GCC_4_5_or_later
config CC_GCC_4_7
bool
select CC_GCC_4_7_or_later
select CC_GCC_USE_GMP_MPFR
select CC_GCC_USE_MPC
select CC_GCC_HAS_GRAPHITE
select CC_GCC_HAS_LTO
select CC_GCC_HAS_PKGVERSION_BUGURL
select CC_GCC_HAS_BUILD_ID
select CC_GCC_HAS_LNK_HASH_STYLE
select CC_GCC_HAS_LIBQUADMATH
config CC_GCC_4_7_or_later
bool
select CC_GCC_4_6_or_later
config CC_GCC_4_8
bool
select CC_GCC_4_8_or_later
@ -229,7 +102,6 @@ config CC_GCC_4_8
config CC_GCC_4_8_or_later
bool
select CC_GCC_4_7_or_later
config CC_GCC_4_9
bool
@ -284,22 +156,24 @@ config CC_GCC_latest
config CC_GCC_HAS_GRAPHITE
bool
# For graphite: gcc 4.4..4.7 need ppl, while 4.8.. need isl
# For graphite: gcc needs cloog and isl
# In >= gcc-5.x, cloog is no longer needed, but isl is.
# Prompt in config/cc/gcc.in.2
config CC_GCC_USE_GRAPHITE
bool
default y
depends on CC_GCC_HAS_GRAPHITE
select CLOOG_NEEDED if !CC_GCC_5_or_later
select PPL_NEEDED if !CC_GCC_4_8_or_later
select ISL_NEEDED if CC_GCC_4_8_or_later
select ISL_NEEDED
help
Enable the GRAPHITE loop optimsations.
On some systems (eg. Cygwin), PPL and/or CLooG (required to enable
On some systems (eg. Cygwin), CLooG and ISL (required to enable
GRAPHITE) may not build properly (yet), so you'll have to say 'N'
here (or help debug the issues)
TODO: Is this still true on Cygwin?
# The way LTO works is a bit twisted.
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
# Basically:
@ -316,7 +190,7 @@ config CC_GCC_USE_LTO
bool
default y
depends on CC_GCC_HAS_LTO
select CC_GCC_USE_LIBELF if CC_GCC_4_5
select CC_GCC_USE_LIBELF
help
Enable the Link Time Optimisations.
@ -372,22 +246,11 @@ config CC_GCC_VERSION
default "4.9.3" if CC_GCC_V_4_9_3
default "linaro-4.8-2015.06" if CC_GCC_V_linaro_4_8
default "4.8.5" if CC_GCC_V_4_8_5
default "linaro-4.7-2014.06" if CC_GCC_V_linaro_4_7
default "4.7.4" if CC_GCC_V_4_7_4
default "linaro-4.6-2013.05" if CC_GCC_V_linaro_4_6
default "4.6.4" if CC_GCC_V_4_6_4
default "linaro-4.5-2012.03" if CC_GCC_V_linaro_4_5
default "4.5.4" if CC_GCC_V_4_5_4
default "linaro-4.4-2011.02-0" if CC_GCC_V_linaro_4_4
default "4.4.7" if CC_GCC_V_4_4_7
default "4.3.6" if CC_GCC_V_4_3_6
default "4.2.4" if CC_GCC_V_4_2_4
config CC_LANG_JAVA_USE_ECJ
bool
default y
depends on CC_LANG_JAVA
depends on CC_GCC_4_3_or_later
# Fortran always requires GMP+MPFR, whatever the gcc version
config CC_LANG_FORTRAN

View File

@ -59,16 +59,16 @@ config CC_GCC_TARGET_FINAL
tricks are not done and the compiler is build with all/install.
config STATIC_TOOLCHAIN
select CC_GCC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
bool
select CC_GCC_STATIC_LIBSTDCXX
config CC_GCC_STATIC_LIBSTDCXX
bool
prompt "Link libstdc++ statically into the gcc binary"
default y
depends on CC_GCC_4_4_or_later
select WANTS_STATIC_LINK
help
Newer gcc versions use the PPL library which is C++ code. Statically
Newer gcc versions require some c++ libraries. So statically
linking libstdc++ increases the likeliness that the gcc binary will
run on machines other than the one which it was built on, without
having to worry about distributing the matching version of libstdc++
@ -137,12 +137,15 @@ config CC_GCC_LIBMUDFLAP
config CC_GCC_LIBGOMP
bool
prompt "Compile libgomp"
depends on !THREADS_NONE
help
libgomp is "the GNU implementation of the OpenMP Application Programming
Interface (API) for multi-platform shared-memory parallel programming in
C/C++ and Fortran". See:
http://gcc.gnu.org/onlinedocs/libgomp/
GNU OpenMP support requires threading.
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBSSP
@ -229,7 +232,6 @@ config CC_GCC_LDBL_128
tristate
prompt "Enable 128-bit long doubles"
default m
depends on CC_GCC_4_2_or_later
help
Saying 'Y' will force gcc to use 128-bit wide long doubles
Saying 'N' will force gcc to use 64-bit wide long doubles

View File

@ -28,11 +28,6 @@ config MPFR_NEEDED
select MPFR
select COMPLIBS_NEEDED
config PPL_NEEDED
bool
select PPL
select COMPLIBS_NEEDED
config ISL_NEEDED
bool
select ISL
@ -83,11 +78,6 @@ config MPFR
select GMP
select COMPLIBS
config PPL
bool
select GMP
select COMPLIBS
config ISL
bool
select GMP
@ -137,9 +127,6 @@ endif
if MPFR
source "config/companion_libs/mpfr.in"
endif
if PPL
source "config/companion_libs/ppl.in"
endif
if ISL
source "config/companion_libs/isl.in"
endif
@ -182,9 +169,7 @@ config COMPLIBS_CHECK
If you suspect that one (or more) of your companion libraries is the
cause for incorrectly generated code, you should answer 'Y' here.
Note however that this will take a really long time. For example,
building PPL on my machine takes roughly 1'40", while checking it takes
about 1h40'...
Note however that this will take a really long time.
endif # COMPLIBS

View File

@ -26,15 +26,6 @@ config CLOOG_V_0_18_0
endif # ISL
if PPL
config CLOOG_V_0_15_11
bool
prompt "0.15.11"
select CLOOG_NEEDS_AUTORECONF
endif # PPL
endchoice
config CLOOG_VERSION
@ -44,7 +35,6 @@ config CLOOG_VERSION
default "0.18.4" if CLOOG_V_0_18_4
default "0.18.1" if CLOOG_V_0_18_1
default "0.18.0" if CLOOG_V_0_18_0
default "0.15.11" if CLOOG_V_0_15_11
config CLOOG_0_18_4_or_later
bool

View File

@ -1,51 +0,0 @@
# PPL options
choice
bool
prompt "PPL version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config PPL_V_0_11_2
bool
prompt "0.11.2"
select PPL_0_11
config PPL_V_0_11_1
bool
prompt "0.11.1"
select PPL_0_11
config PPL_V_0_11
bool
prompt "0.11"
select PPL_0_11
config PPL_V_0_10_2
bool
prompt "0.10.2"
select PPL_NEEDS_FPERMISSIVE
endchoice
config PPL_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "0.11.2" if PPL_V_0_11_2
default "0.11.1" if PPL_V_0_11_1
default "0.11" if PPL_V_0_11
default "0.10.2" if PPL_V_0_10_2
# For PPL 0.10, we need -fpermissive to build on gcc 4.7+
# (even gcc-4.6+ ?)
config PPL_NEEDS_FPERMISSIVE
bool
# For PPL 0.11, we need to pull libpwl if configured static
config PPL_0_11
bool
select PPL_NEEDS_LIBPWL if ! COMPLIBS_SHARED
config PPL_NEEDS_LIBPWL
bool

View File

@ -130,7 +130,6 @@ config STRIP_HOST_TOOLCHAIN_EXECUTABLES
config STRIP_TARGET_TOOLCHAIN_EXECUTABLES
bool
prompt "Strip target toolchain executables"
depends on CC_GCC_4_6_or_later
help
It means using install-strip target for GCC 4.6 or later.
An install-strip make target is provided that installs stripped

View File

@ -38,12 +38,12 @@ choice
config LIBC_GLIBC_V_2_22
bool
prompt "2.22"
select LIBC_GLIBC_2_21_or_later
select LIBC_GLIBC_2_20_or_later
config LIBC_GLIBC_V_2_21
bool
prompt "2.21"
select LIBC_GLIBC_2_21_or_later
select LIBC_GLIBC_2_20_or_later
config LIBC_GLIBC_LINARO_V_2_20
bool
@ -141,12 +141,6 @@ config LIBC_GLIBC_CUSTOM
endchoice
# glibc 2.21 depends on gcc >= 4.6
config LIBC_GLIBC_2_21_or_later
bool
depends on CC_GCC_4_6_or_later
select LIBC_GLIBC_2_20_or_later
config LIBC_GLIBC_2_20_or_later
bool
select LIBC_GLIBC_2_17_or_later

View File

@ -94,7 +94,10 @@ Unfortunately, not all systems on which crosstool-NG runs have all of those
libraries. And for those that do, the versions of those libraries may be
older than the version required by gcc (and binutils and gdb). To date,
Debian stable (aka Lenny) is lagging behind on some, and is missing the
others.
others. With >= gcc-4.8, we drop PPL and CLooG/PPL, and switch to ISL to
replace PPL, and use the upstream version of CLooG instead of CLooG/PPL
which was a fork of CLooG that provided PPL backend support, that was under-
maintained. See: https://gcc.gnu.org/wiki/Graphite-4.8
This is why crosstool-NG builds its own set of libraries as part of the
toolchain.

View File

@ -35,7 +35,7 @@ Here is the (mostly-complete) list of categories and components:
libc | uClibc, glibc, newlib, mingw, none
kernel | linux, mingw32, bare-metal
debug | dmalloc, duma, gdb, ltrace, strace
complibs | gmp, mpfr, ppl, cloog, mpc, libelf
complibs | gmp, mpfr, isl, cloog, mpc, libelf
comptools | make, m4, autoconf, automake, libtool
------------+-------------------------------------------------------
| The following categories have no component-part:

View File

@ -199,16 +199,16 @@ loop optimisation (GRAPHITE) and Link Time Optimisation (LTO). If you want
to use these, you'll need three additional libraries:
To enable GRAPHITE:
- the Parma Polyhedra Library, PPL
- the Chunky Loop Generator, using the PPL backend, CLooG/PPL
- the Interger Set Library, ISL
- the Chunky Loop Generator, CLooG
To enable LTO:
- the ELF object file access library, libelf
The dependencies for those libraries are:
- PPL requires GMP
- CLooG/PPL requires GMP and PPL
- ISL requires GMP
- CLooG requires GMP and ISL
- libelf has no pre-requisites
The list now looks like (optional libs with a *):
@ -216,8 +216,8 @@ The list now looks like (optional libs with a *):
1 GMP
2 MPFR
3 MPC
4 PPL *
5 CLooG/PPL *
4 ISL *
5 CLooG *
6 libelf *
7 binutils
8 core pass 1 compiler

View File

@ -1,24 +0,0 @@
diff -Naurd cloog-ppl-0.15.10-a/configure cloog-ppl-0.15.10-b/configure
--- cloog-ppl-0.15.10-a/configure 2010-08-27 21:14:33.000000000 +0200
+++ cloog-ppl-0.15.10-b/configure 2012-01-27 13:28:49.262987773 +0100
@@ -11168,7 +11168,7 @@
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
$as_echo "#define CLOOG_PPL_BACKEND 1" >>confdefs.h
diff -Naurd cloog-ppl-0.15.10-a/configure.in cloog-ppl-0.15.10-b/configure.in
--- cloog-ppl-0.15.10-a/configure.in 2010-08-27 21:13:48.000000000 +0200
+++ cloog-ppl-0.15.10-b/configure.in 2012-01-27 13:28:49.262987773 +0100
@@ -343,7 +343,7 @@
#endif
], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR(Can't find correct version of PPL.) ])
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
AC_DEFINE([CLOOG_PPL_BACKEND], 1, [Use the PPL backend])
else

View File

@ -1,24 +0,0 @@
diff -Naurd cloog-ppl-0.15.11-a/configure cloog-ppl-0.15.11-b/configure
--- cloog-ppl-0.15.11-a/configure 2011-04-01 06:22:53.000000000 +0200
+++ cloog-ppl-0.15.11-b/configure 2012-01-27 13:29:42.698987517 +0100
@@ -11238,7 +11238,7 @@
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
$as_echo "#define CLOOG_PPL_BACKEND 1" >>confdefs.h
diff -Naurd cloog-ppl-0.15.11-a/configure.in cloog-ppl-0.15.11-b/configure.in
--- cloog-ppl-0.15.11-a/configure.in 2010-08-27 21:13:48.000000000 +0200
+++ cloog-ppl-0.15.11-b/configure.in 2012-01-27 13:29:42.698987517 +0100
@@ -343,7 +343,7 @@
#endif
], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR(Can't find correct version of PPL.) ])
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
AC_DEFINE([CLOOG_PPL_BACKEND], 1, [Use the PPL backend])
else

View File

@ -1,24 +0,0 @@
diff -Naurd cloog-ppl-0.15.6-a/configure cloog-ppl-0.15.6-b/configure
--- cloog-ppl-0.15.6-a/configure 2009-08-10 23:18:07.000000000 +0200
+++ cloog-ppl-0.15.6-b/configure 2012-01-27 13:25:08.858988857 +0100
@@ -12917,7 +12917,7 @@
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
cat >>confdefs.h <<\_ACEOF
#define CLOOG_PPL_BACKEND 1
diff -Naurd cloog-ppl-0.15.6-a/configure.in cloog-ppl-0.15.6-b/configure.in
--- cloog-ppl-0.15.6-a/configure.in 2009-08-10 23:18:07.000000000 +0200
+++ cloog-ppl-0.15.6-b/configure.in 2012-01-27 13:25:08.862988846 +0100
@@ -354,7 +354,7 @@
#endif
], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR(Can't find correct version of PPL.) ])
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
AC_DEFINE([CLOOG_PPL_BACKEND], 1, [Use the PPL backend])
else

View File

@ -1,24 +0,0 @@
diff -Naurd cloog-ppl-0.15.7-a/configure cloog-ppl-0.15.7-b/configure
--- cloog-ppl-0.15.7-a/configure 2009-08-12 03:33:31.000000000 +0200
+++ cloog-ppl-0.15.7-b/configure 2012-01-27 13:26:13.970988501 +0100
@@ -12902,7 +12902,7 @@
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
cat >>confdefs.h <<\_ACEOF
#define CLOOG_PPL_BACKEND 1
diff -Naurd cloog-ppl-0.15.7-a/configure.in cloog-ppl-0.15.7-b/configure.in
--- cloog-ppl-0.15.7-a/configure.in 2009-08-12 03:33:31.000000000 +0200
+++ cloog-ppl-0.15.7-b/configure.in 2012-01-27 13:26:13.970988501 +0100
@@ -345,7 +345,7 @@
#endif
], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR(Can't find correct version of PPL.) ])
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
AC_DEFINE([CLOOG_PPL_BACKEND], 1, [Use the PPL backend])
else

View File

@ -1,24 +0,0 @@
diff -Naurd cloog-ppl-0.15.8-a/configure cloog-ppl-0.15.8-b/configure
--- cloog-ppl-0.15.8-a/configure 2010-02-11 19:05:30.000000000 +0100
+++ cloog-ppl-0.15.8-b/configure 2012-01-27 13:27:09.710988253 +0100
@@ -12902,7 +12902,7 @@
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
cat >>confdefs.h <<\_ACEOF
#define CLOOG_PPL_BACKEND 1
diff -Naurd cloog-ppl-0.15.8-a/configure.in cloog-ppl-0.15.8-b/configure.in
--- cloog-ppl-0.15.8-a/configure.in 2010-02-11 19:05:31.000000000 +0100
+++ cloog-ppl-0.15.8-b/configure.in 2012-01-27 13:27:09.710988253 +0100
@@ -345,7 +345,7 @@
#endif
], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR(Can't find correct version of PPL.) ])
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
AC_DEFINE([CLOOG_PPL_BACKEND], 1, [Use the PPL backend])
else

View File

@ -1,24 +0,0 @@
diff -Naurd cloog-ppl-0.15.9-a/configure cloog-ppl-0.15.9-b/configure
--- cloog-ppl-0.15.9-a/configure 2010-03-23 22:29:47.000000000 +0100
+++ cloog-ppl-0.15.9-b/configure 2012-01-27 13:28:03.866987993 +0100
@@ -12902,7 +12902,7 @@
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
cat >>confdefs.h <<\_ACEOF
#define CLOOG_PPL_BACKEND 1
diff -Naurd cloog-ppl-0.15.9-a/configure.in cloog-ppl-0.15.9-b/configure.in
--- cloog-ppl-0.15.9-a/configure.in 2010-03-23 22:29:47.000000000 +0100
+++ cloog-ppl-0.15.9-b/configure.in 2012-01-27 13:28:03.866987993 +0100
@@ -345,7 +345,7 @@
#endif
], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR(Can't find correct version of PPL.) ])
- LIBS="$LIBS -lppl_c -lppl -lgmpxx"
+ LIBS="-lppl_c -lppl -lgmpxx $LIBS"
AC_DEFINE([CLOOG_PPL_BACKEND], 1, [Use the PPL backend])
else

View File

@ -1,216 +0,0 @@
diff -durN gcc-4.2.1.orig/boehm-gc/configure gcc-4.2.1/boehm-gc/configure
--- gcc-4.2.1.orig/boehm-gc/configure 2007-07-19 16:33:56.000000000 +0200
+++ gcc-4.2.1/boehm-gc/configure 2007-08-03 20:29:22.000000000 +0200
@@ -4323,7 +4323,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/contrib/regression/objs-gcc.sh gcc-4.2.1/contrib/regression/objs-gcc.sh
--- gcc-4.2.1.orig/contrib/regression/objs-gcc.sh 2005-08-15 02:41:31.000000000 +0200
+++ gcc-4.2.1/contrib/regression/objs-gcc.sh 2007-08-03 20:29:22.000000000 +0200
@@ -105,6 +105,10 @@
then
make all-gdb all-dejagnu all-ld || exit 1
make install-gdb install-dejagnu install-ld || exit 1
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
+ then
+ make all-gdb all-dejagnu all-ld || exit 1
+ make install-gdb install-dejagnu install-ld || exit 1
elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
make bootstrap || exit 1
make install || exit 1
diff -durN gcc-4.2.1.orig/gcc/config/cris/linux.h gcc-4.2.1/gcc/config/cris/linux.h
--- gcc-4.2.1.orig/gcc/config/cris/linux.h 2006-02-18 12:12:51.000000000 +0100
+++ gcc-4.2.1/gcc/config/cris/linux.h 2007-08-03 20:29:22.000000000 +0200
@@ -74,7 +74,11 @@
#define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
#undef CRIS_SUBTARGET_VERSION
-#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
+#if UCLIBC_DEFAULT
+# define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
+#else
+# define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
+#endif
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
diff -durN gcc-4.2.1.orig/libffi/configure gcc-4.2.1/libffi/configure
--- gcc-4.2.1.orig/libffi/configure 2007-07-19 16:33:56.000000000 +0200
+++ gcc-4.2.1/libffi/configure 2007-08-03 20:29:22.000000000 +0200
@@ -3460,7 +3460,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/libgfortran/configure gcc-4.2.1/libgfortran/configure
--- gcc-4.2.1.orig/libgfortran/configure 2007-07-19 16:33:56.000000000 +0200
+++ gcc-4.2.1/libgfortran/configure 2007-08-03 20:29:22.000000000 +0200
@@ -3721,7 +3721,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/libgomp/configure gcc-4.2.1/libgomp/configure
--- gcc-4.2.1.orig/libgomp/configure 2007-07-19 16:33:56.000000000 +0200
+++ gcc-4.2.1/libgomp/configure 2007-08-03 20:29:22.000000000 +0200
@@ -3893,7 +3893,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/libjava/classpath/configure gcc-4.2.1/libjava/classpath/configure
--- gcc-4.2.1.orig/libjava/classpath/configure 2007-01-17 19:10:26.000000000 +0100
+++ gcc-4.2.1/libjava/classpath/configure 2007-08-03 20:29:22.000000000 +0200
@@ -5307,7 +5307,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/libjava/classpath/ltconfig gcc-4.2.1/libjava/classpath/ltconfig
--- gcc-4.2.1.orig/libjava/classpath/ltconfig 2006-08-07 22:37:50.000000000 +0200
+++ gcc-4.2.1/libjava/classpath/ltconfig 2007-08-03 20:29:22.000000000 +0200
@@ -603,7 +603,7 @@
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
case $host_os in
-linux-gnu*) ;;
+linux-gnu*|linux-uclibc*) ;;
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
esac
@@ -1251,7 +1251,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
version_type=linux
need_lib_prefix=no
need_version=no
diff -durN gcc-4.2.1.orig/libjava/configure gcc-4.2.1/libjava/configure
--- gcc-4.2.1.orig/libjava/configure 2007-07-19 16:33:56.000000000 +0200
+++ gcc-4.2.1/libjava/configure 2007-08-03 20:29:22.000000000 +0200
@@ -5424,7 +5424,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/libmudflap/configure gcc-4.2.1/libmudflap/configure
--- gcc-4.2.1.orig/libmudflap/configure 2006-12-04 12:13:07.000000000 +0100
+++ gcc-4.2.1/libmudflap/configure 2007-08-03 20:29:22.000000000 +0200
@@ -5394,7 +5394,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/libobjc/configure gcc-4.2.1/libobjc/configure
--- gcc-4.2.1.orig/libobjc/configure 2006-10-15 09:42:57.000000000 +0200
+++ gcc-4.2.1/libobjc/configure 2007-08-03 20:29:22.000000000 +0200
@@ -3314,7 +3314,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/libssp/configure gcc-4.2.1/libssp/configure
--- gcc-4.2.1.orig/libssp/configure 2006-10-15 09:42:57.000000000 +0200
+++ gcc-4.2.1/libssp/configure 2007-08-03 20:29:22.000000000 +0200
@@ -4480,7 +4480,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/libstdc++-v3/configure gcc-4.2.1/libstdc++-v3/configure
--- gcc-4.2.1.orig/libstdc++-v3/configure 2007-06-29 01:02:05.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/configure 2007-08-03 20:29:22.000000000 +0200
@@ -4283,7 +4283,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/libtool.m4 gcc-4.2.1/libtool.m4
--- gcc-4.2.1.orig/libtool.m4 2005-07-16 04:30:53.000000000 +0200
+++ gcc-4.2.1/libtool.m4 2007-08-03 20:29:22.000000000 +0200
@@ -739,7 +739,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;
diff -durN gcc-4.2.1.orig/ltconfig gcc-4.2.1/ltconfig
--- gcc-4.2.1.orig/ltconfig 2007-02-14 18:08:35.000000000 +0100
+++ gcc-4.2.1/ltconfig 2007-08-03 20:29:22.000000000 +0200
@@ -603,7 +603,7 @@
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
case $host_os in
-linux-gnu*) ;;
+linux-gnu*|linux-uclibc*) ;;
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
esac
@@ -1251,7 +1251,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
version_type=linux
need_lib_prefix=no
need_version=no
diff -durN gcc-4.2.1.orig/zlib/configure gcc-4.2.1/zlib/configure
--- gcc-4.2.1.orig/zlib/configure 2007-01-17 19:10:26.000000000 +0100
+++ gcc-4.2.1/zlib/configure 2007-08-03 20:29:22.000000000 +0200
@@ -3429,7 +3429,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
lt_cv_deplibs_check_method=pass_all
;;

View File

@ -1,12 +0,0 @@
diff -durN gcc-4.2.1.orig/gcc/config.gcc gcc-4.2.1/gcc/config.gcc
--- gcc-4.2.1.orig/gcc/config.gcc 2007-02-03 06:25:20.000000000 +0100
+++ gcc-4.2.1/gcc/config.gcc 2007-08-03 20:29:52.000000000 +0200
@@ -1964,7 +1964,7 @@
;;
sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
- sh-*-linux* | sh[346lbe]*-*-linux* | \
+ sh*-*-linux* | sh[346lbe]*-*-linux* | \
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
sh64-*-netbsd* | sh64l*-*-netbsd*)
tmake_file="${tmake_file} sh/t-sh sh/t-elf"

File diff suppressed because it is too large Load Diff

View File

@ -1,223 +0,0 @@
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.cc 2007-08-03 20:30:53.000000000 +0200
@@ -39,20 +39,6 @@
#include <langinfo.h>
#include <bits/c++locale_internal.h>
-#ifndef __UCLIBC_HAS_XLOCALE__
-#define __strtol_l(S, E, B, L) strtol((S), (E), (B))
-#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B))
-#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B))
-#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B))
-#define __strtof_l(S, E, L) strtof((S), (E))
-#define __strtod_l(S, E, L) strtod((S), (E))
-#define __strtold_l(S, E, L) strtold((S), (E))
-#warning should dummy __newlocale check for C|POSIX ?
-#define __newlocale(a, b, c) NULL
-#define __freelocale(a) ((void)0)
-#define __duplocale(a) __c_locale()
-#endif
-
namespace std
{
template<>
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.h
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.h 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.h 2007-08-03 20:30:53.000000000 +0200
@@ -68,6 +68,7 @@
{
extern "C" __typeof(uselocale) __uselocale;
}
+#define __uselocale uselocale
#endif
namespace std
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2007-08-03 20:30:53.000000000 +0200
@@ -60,4 +60,49 @@
extern "C" __typeof(wctype_l) __wctype_l;
#endif
+# define __nl_langinfo_l nl_langinfo_l
+# define __strcoll_l strcoll_l
+# define __strftime_l strftime_l
+# define __strtod_l strtod_l
+# define __strtof_l strtof_l
+# define __strtold_l strtold_l
+# define __strxfrm_l strxfrm_l
+# define __newlocale newlocale
+# define __freelocale freelocale
+# define __duplocale duplocale
+# define __uselocale uselocale
+
+# ifdef _GLIBCXX_USE_WCHAR_T
+# define __iswctype_l iswctype_l
+# define __towlower_l towlower_l
+# define __towupper_l towupper_l
+# define __wcscoll_l wcscoll_l
+# define __wcsftime_l wcsftime_l
+# define __wcsxfrm_l wcsxfrm_l
+# define __wctype_l wctype_l
+# endif
+
+#else
+# define __nl_langinfo_l(N, L) nl_langinfo((N))
+# define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
+# define __strtod_l(S, E, L) strtod((S), (E))
+# define __strtof_l(S, E, L) strtof((S), (E))
+# define __strtold_l(S, E, L) strtold((S), (E))
+# define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
+# warning should dummy __newlocale check for C|POSIX ?
+# define __newlocale(a, b, c) NULL
+# define __freelocale(a) ((void)0)
+# define __duplocale(a) __c_locale()
+//# define __uselocale ?
+//
+# ifdef _GLIBCXX_USE_WCHAR_T
+# define __iswctype_l(C, M, L) iswctype((C), (M))
+# define __towlower_l(C, L) towlower((C))
+# define __towupper_l(C, L) towupper((C))
+# define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
+//# define __wcsftime_l(S, M, F, T, L) wcsftime((S), (M), (F), (T))
+# define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
+# define __wctype_l(S, L) wctype((S))
+# endif
+
#endif // GLIBC 2.3 and later
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/collate_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/collate_members.cc 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/collate_members.cc 2007-08-03 20:30:53.000000000 +0200
@@ -36,13 +36,6 @@
#include <locale>
#include <bits/c++locale_internal.h>
-#ifndef __UCLIBC_HAS_XLOCALE__
-#define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
-#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
-#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
-#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
-#endif
-
namespace std
{
// These are basically extensions to char_traits, and perhaps should
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/ctype_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2007-08-03 20:30:53.000000000 +0200
@@ -38,13 +38,6 @@
#undef _LIBC
#include <bits/c++locale_internal.h>
-#ifndef __UCLIBC_HAS_XLOCALE__
-#define __wctype_l(S, L) wctype((S))
-#define __towupper_l(C, L) towupper((C))
-#define __towlower_l(C, L) towlower((C))
-#define __iswctype_l(C, M, L) iswctype((C), (M))
-#endif
-
namespace std
{
// NB: The other ctype<char> specializations are in src/locale.cc and
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.cc 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.cc 2007-08-03 20:30:53.000000000 +0200
@@ -39,13 +39,10 @@
#ifdef __UCLIBC_MJN3_ONLY__
#warning fix gettext stuff
#endif
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-extern "C" char *__dcgettext(const char *domainname,
- const char *msgid, int category);
#undef gettext
-#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
+#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES)
#else
-#undef gettext
#define gettext(msgid) (msgid)
#endif
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.h
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.h 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.h 2007-08-03 20:30:53.000000000 +0200
@@ -36,15 +36,11 @@
#ifdef __UCLIBC_MJN3_ONLY__
#warning fix prototypes for *textdomain funcs
#endif
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-extern "C" char *__textdomain(const char *domainname);
-extern "C" char *__bindtextdomain(const char *domainname,
- const char *dirname);
-#else
-#undef __textdomain
-#undef __bindtextdomain
-#define __textdomain(D) ((void)0)
-#define __bindtextdomain(D,P) ((void)0)
+#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__
+#undef textdomain
+#undef bindtextdomain
+#define textdomain(D) ((void)0)
+#define bindtextdomain(D,P) ((void)0)
#endif
// Non-virtual member functions.
@@ -70,7 +66,7 @@
messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
const char* __dir) const
{
- __bindtextdomain(__s.c_str(), __dir);
+ bindtextdomain(__s.c_str(), __dir);
return this->do_open(__s, __loc);
}
@@ -90,7 +86,7 @@
{
// No error checking is done, assume the catalog exists and can
// be used.
- __textdomain(__s.c_str());
+ textdomain(__s.c_str());
return 0;
}
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2007-08-03 20:30:53.000000000 +0200
@@ -43,10 +43,6 @@
#warning tailor for stub locale support
#endif
-#ifndef __UCLIBC_HAS_XLOCALE__
-#define __nl_langinfo_l(N, L) nl_langinfo((N))
-#endif
-
namespace std
{
// Construct and return valid pattern consisting of some combination of:
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2007-08-03 20:30:53.000000000 +0200
@@ -41,9 +41,6 @@
#ifdef __UCLIBC_MJN3_ONLY__
#warning tailor for stub locale support
#endif
-#ifndef __UCLIBC_HAS_XLOCALE__
-#define __nl_langinfo_l(N, L) nl_langinfo((N))
-#endif
namespace std
{
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/time_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/time_members.cc 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/time_members.cc 2007-08-03 20:30:53.000000000 +0200
@@ -40,9 +40,6 @@
#ifdef __UCLIBC_MJN3_ONLY__
#warning tailor for stub locale support
#endif
-#ifndef __UCLIBC_HAS_XLOCALE__
-#define __nl_langinfo_l(N, L) nl_langinfo((N))
-#endif
namespace std
{

View File

@ -1,50 +0,0 @@
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2007-08-03 20:30:53.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2007-08-03 20:31:24.000000000 +0200
@@ -401,7 +401,7 @@
# ifdef __UCLIBC_HAS_XLOCALE__
_M_data->_M_decimal_point = __cloc->decimal_point_wc;
_M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-# else
+# elif defined __UCLIBC_HAS_LOCALE__
_M_data->_M_decimal_point = __global_locale->decimal_point_wc;
_M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
# endif
@@ -556,7 +556,7 @@
# ifdef __UCLIBC_HAS_XLOCALE__
_M_data->_M_decimal_point = __cloc->decimal_point_wc;
_M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-# else
+# elif defined __UCLIBC_HAS_LOCALE__
_M_data->_M_decimal_point = __global_locale->decimal_point_wc;
_M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
# endif
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2007-08-03 20:30:53.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2007-08-03 20:31:24.000000000 +0200
@@ -127,12 +127,25 @@
{
// Named locale.
// NB: In the GNU model wchar_t is always 32 bit wide.
+#ifdef __UCLIBC_MJN3_ONLY__
+#warning fix this... should be numeric
+#endif
+#ifdef __UCLIBC__
+# ifdef __UCLIBC_HAS_XLOCALE__
+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
+# elif defined __UCLIBC_HAS_LOCALE__
+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
+# endif
+#else
union { char *__s; wchar_t __w; } __u;
__u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
_M_data->_M_decimal_point = __u.__w;
__u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
_M_data->_M_thousands_sep = __u.__w;
+#endif
if (_M_data->_M_thousands_sep == L'\0')
_M_data->_M_grouping = "";

View File

@ -1,354 +0,0 @@
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc 2007-08-03 20:30:53.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.cc 2007-08-03 20:31:54.000000000 +0200
@@ -46,16 +46,13 @@
__convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
const __c_locale& __cloc)
{
- if (!(__err & ios_base::failbit))
- {
- char* __sanity;
- errno = 0;
- float __f = __strtof_l(__s, &__sanity, __cloc);
- if (__sanity != __s && errno != ERANGE)
- __v = __f;
- else
- __err |= ios_base::failbit;
- }
+ char* __sanity;
+ errno = 0;
+ float __f = __strtof_l(__s, &__sanity, __cloc);
+ if (__sanity != __s && errno != ERANGE)
+ __v = __f;
+ else
+ __err |= ios_base::failbit;
}
template<>
@@ -63,16 +60,13 @@
__convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
const __c_locale& __cloc)
{
- if (!(__err & ios_base::failbit))
- {
- char* __sanity;
- errno = 0;
- double __d = __strtod_l(__s, &__sanity, __cloc);
- if (__sanity != __s && errno != ERANGE)
- __v = __d;
- else
- __err |= ios_base::failbit;
- }
+ char* __sanity;
+ errno = 0;
+ double __d = __strtod_l(__s, &__sanity, __cloc);
+ if (__sanity != __s && errno != ERANGE)
+ __v = __d;
+ else
+ __err |= ios_base::failbit;
}
template<>
@@ -80,16 +74,13 @@
__convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
const __c_locale& __cloc)
{
- if (!(__err & ios_base::failbit))
- {
- char* __sanity;
- errno = 0;
- long double __ld = __strtold_l(__s, &__sanity, __cloc);
- if (__sanity != __s && errno != ERANGE)
- __v = __ld;
- else
- __err |= ios_base::failbit;
- }
+ char* __sanity;
+ errno = 0;
+ long double __ld = __strtold_l(__s, &__sanity, __cloc);
+ if (__sanity != __s && errno != ERANGE)
+ __v = __ld;
+ else
+ __err |= ios_base::failbit;
}
void
@@ -110,7 +101,7 @@
void
locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
{
- if (_S_get_c_locale() != __cloc)
+ if (__cloc && _S_get_c_locale() != __cloc)
__freelocale(__cloc);
}
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.h
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/c_locale.h 2007-08-03 20:30:53.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/c_locale.h 2007-08-03 20:31:54.000000000 +0200
@@ -39,21 +39,23 @@
#pragma GCC system_header
#include <cstring> // get std::strlen
-#include <cstdio> // get std::snprintf or std::sprintf
+#include <cstdio> // get std::vsnprintf or std::vsprintf
#include <clocale>
#include <langinfo.h> // For codecvt
#ifdef __UCLIBC_MJN3_ONLY__
#warning fix this
#endif
-#ifdef __UCLIBC_HAS_LOCALE__
+#ifdef _GLIBCXX_USE_ICONV
#include <iconv.h> // For codecvt using iconv, iconv_t
#endif
-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-#include <libintl.h> // For messages
+#ifdef HAVE_LIBINTL_H
+#include <libintl.h> // For messages
#endif
+#include <cstdarg>
#ifdef __UCLIBC_MJN3_ONLY__
#warning what is _GLIBCXX_C_LOCALE_GNU for
+// psm: used in os/gnu-linux/ctype_noninline.h
#endif
#define _GLIBCXX_C_LOCALE_GNU 1
@@ -62,7 +64,7 @@
#endif
// #define _GLIBCXX_NUM_CATEGORIES 6
#define _GLIBCXX_NUM_CATEGORIES 0
-
+
#ifdef __UCLIBC_HAS_XLOCALE__
namespace __gnu_cxx
{
@@ -79,22 +81,24 @@
typedef int* __c_locale;
#endif
- // Convert numeric value of type _Tv to string and return length of
- // string. If snprintf is available use it, otherwise fall back to
- // the unsafe sprintf which, in general, can be dangerous and should
+ // Convert numeric value of type double to string and return length of
+ // string. If vsnprintf is available use it, otherwise fall back to
+ // the unsafe vsprintf which, in general, can be dangerous and should
// be avoided.
- template<typename _Tv>
- int
- __convert_from_v(char* __out,
- const int __size __attribute__ ((__unused__)),
- const char* __fmt,
-#ifdef __UCLIBC_HAS_XCLOCALE__
- _Tv __v, const __c_locale& __cloc, int __prec)
+ inline int
+ __convert_from_v(const __c_locale&
+#ifndef __UCLIBC_HAS_XCLOCALE__
+ __cloc __attribute__ ((__unused__))
+#endif
+ ,
+ char* __out,
+ const int __size,
+ const char* __fmt, ...)
{
+ va_list __args;
+#ifdef __UCLIBC_HAS_XCLOCALE__
__c_locale __old = __gnu_cxx::__uselocale(__cloc);
#else
- _Tv __v, const __c_locale&, int __prec)
- {
# ifdef __UCLIBC_HAS_LOCALE__
char* __old = std::setlocale(LC_ALL, NULL);
char* __sav = new char[std::strlen(__old) + 1];
@@ -103,7 +107,9 @@
# endif
#endif
- const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
+ va_start(__args, __fmt);
+ const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
+ va_end(__args);
#ifdef __UCLIBC_HAS_XCLOCALE__
__gnu_cxx::__uselocale(__old);
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/ctype_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2007-08-03 20:30:53.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2007-08-03 20:31:54.000000000 +0200
@@ -33,9 +33,14 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
+#include <features.h>
+#ifdef __UCLIBC_HAS_LOCALE__
#define _LIBC
#include <locale>
#undef _LIBC
+#else
+#include <locale>
+#endif
#include <bits/c++locale_internal.h>
namespace std
@@ -138,20 +143,34 @@
ctype<wchar_t>::
do_is(mask __m, wchar_t __c) const
{
- // Highest bitmask in ctype_base == 10, but extra in "C"
- // library for blank.
+ // The case of __m == ctype_base::space is particularly important,
+ // due to its use in many istream functions. Therefore we deal with
+ // it first, exploiting the knowledge that on GNU systems _M_bit[5]
+ // is the mask corresponding to ctype_base::space. NB: an encoding
+ // change would not affect correctness!
bool __ret = false;
- const size_t __bitmasksize = 11;
- for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
- if (__m & _M_bit[__bitcur]
- && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
- {
- __ret = true;
- break;
- }
+ if (__m == _M_bit[5])
+ __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
+ else
+ {
+ // Highest bitmask in ctype_base == 10, but extra in "C"
+ // library for blank.
+ const size_t __bitmasksize = 11;
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+ if (__m & _M_bit[__bitcur])
+ {
+ if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
+ {
+ __ret = true;
+ break;
+ }
+ else if (__m == _M_bit[__bitcur])
+ break;
+ }
+ }
return __ret;
}
-
+
const wchar_t*
ctype<wchar_t>::
do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.h
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.h 2007-08-03 20:30:53.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.h 2007-08-03 20:31:54.000000000 +0200
@@ -47,18 +47,21 @@
template<typename _CharT>
messages<_CharT>::messages(size_t __refs)
: facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
- _M_name_messages(_S_get_c_name())
+ _M_name_messages(_S_get_c_name())
{ }
template<typename _CharT>
messages<_CharT>::messages(__c_locale __cloc, const char* __s,
size_t __refs)
- : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
- _M_name_messages(__s)
+ : facet(__refs), _M_c_locale_messages(NULL), _M_name_messages(NULL)
{
- char* __tmp = new char[std::strlen(__s) + 1];
- std::strcpy(__tmp, __s);
+ const size_t __len = std::strlen(__s) + 1;
+ char* __tmp = new char[__len];
+ std::memcpy(__tmp, __s, __len);
_M_name_messages = __tmp;
+
+ // Last to avoid leaking memory if new throws.
+ _M_c_locale_messages = _S_clone_c_locale(__cloc);
}
template<typename _CharT>
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2007-08-03 20:31:24.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2007-08-03 20:31:54.000000000 +0200
@@ -33,9 +33,14 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
+#include <features.h>
+#ifdef __UCLIBC_HAS_LOCALE__
#define _LIBC
#include <locale>
#undef _LIBC
+#else
+#include <locale>
+#endif
#include <bits/c++locale_internal.h>
#ifdef __UCLIBC_MJN3_ONLY__
@@ -206,7 +211,7 @@
}
break;
default:
- ;
+ __ret = pattern();
}
return __ret;
}
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2007-08-03 20:31:24.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2007-08-03 20:31:54.000000000 +0200
@@ -33,9 +33,14 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
+#include <features.h>
+#ifdef __UCLIBC_HAS_LOCALE__
#define _LIBC
#include <locale>
#undef _LIBC
+#else
+#include <locale>
+#endif
#include <bits/c++locale_internal.h>
#ifdef __UCLIBC_MJN3_ONLY__
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/time_members.h
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/time_members.h 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/time_members.h 2007-08-03 20:31:54.000000000 +0200
@@ -37,25 +37,33 @@
template<typename _CharT>
__timepunct<_CharT>::__timepunct(size_t __refs)
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
- _M_name_timepunct(_S_get_c_name())
+ _M_name_timepunct(_S_get_c_name())
{ _M_initialize_timepunct(); }
template<typename _CharT>
__timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
: facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
- _M_name_timepunct(_S_get_c_name())
+ _M_name_timepunct(_S_get_c_name())
{ _M_initialize_timepunct(); }
template<typename _CharT>
__timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
size_t __refs)
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
- _M_name_timepunct(__s)
+ _M_name_timepunct(NULL)
{
- char* __tmp = new char[std::strlen(__s) + 1];
- std::strcpy(__tmp, __s);
+ const size_t __len = std::strlen(__s) + 1;
+ char* __tmp = new char[__len];
+ std::memcpy(__tmp, __s, __len);
_M_name_timepunct = __tmp;
- _M_initialize_timepunct(__cloc);
+
+ try
+ { _M_initialize_timepunct(__cloc); }
+ catch(...)
+ {
+ delete [] _M_name_timepunct;
+ __throw_exception_again;
+ }
}
template<typename _CharT>

View File

@ -1,50 +0,0 @@
diff -durN gcc-4.2.1.orig/libstdc++-v3/src/Makefile.am gcc-4.2.1/libstdc++-v3/src/Makefile.am
--- gcc-4.2.1.orig/libstdc++-v3/src/Makefile.am 2006-07-28 06:57:34.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/src/Makefile.am 2007-08-03 20:32:27.000000000 +0200
@@ -257,6 +257,12 @@
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
+install-exec-local:
+ifeq ($(enable_shared),yes)
+ $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
+endif
+
# Added bits to build debug library.
if GLIBCXX_BUILD_DEBUG
all-local: build_debug
diff -durN gcc-4.2.1.orig/libstdc++-v3/src/Makefile.in gcc-4.2.1/libstdc++-v3/src/Makefile.in
--- gcc-4.2.1.orig/libstdc++-v3/src/Makefile.in 2006-10-16 21:08:22.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/src/Makefile.in 2007-08-03 20:32:27.000000000 +0200
@@ -657,7 +657,7 @@
install-data-am: install-data-local
-install-exec-am: install-toolexeclibLTLIBRARIES
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
install-info: install-info-am
@@ -690,6 +690,7 @@
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-local install-exec \
+ install-exec-local \
install-exec-am install-info install-info-am install-man \
install-strip install-toolexeclibLTLIBRARIES installcheck \
installcheck-am installdirs maintainer-clean \
@@ -799,6 +800,13 @@
install_debug:
(cd ${debugdir} && $(MAKE) \
toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
+
+install-exec-local:
+ifeq ($(enable_shared),yes)
+ $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
+endif
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,12 +0,0 @@
diff -durN gcc-4.2.1.orig/boehm-gc/include/gc.h gcc-4.2.1/boehm-gc/include/gc.h
--- gcc-4.2.1.orig/boehm-gc/include/gc.h 2006-09-18 20:45:08.000000000 +0200
+++ gcc-4.2.1/boehm-gc/include/gc.h 2007-08-03 20:33:00.000000000 +0200
@@ -502,7 +502,7 @@
#if defined(__linux__) || defined(__GLIBC__)
# include <features.h>
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
- && !defined(__ia64__)
+ && !defined(__ia64__) && !defined(__UCLIBC__)
# ifndef GC_HAVE_BUILTIN_BACKTRACE
# define GC_HAVE_BUILTIN_BACKTRACE
# endif

View File

@ -1,12 +0,0 @@
diff -durN gcc-4.2.1.orig/libstdc++-v3/include/c_std/std_cstdio.h gcc-4.2.1/libstdc++-v3/include/c_std/std_cstdio.h
--- gcc-4.2.1.orig/libstdc++-v3/include/c_std/std_cstdio.h 2006-12-07 10:33:51.000000000 +0100
+++ gcc-4.2.1/libstdc++-v3/include/c_std/std_cstdio.h 2007-08-03 20:33:24.000000000 +0200
@@ -144,7 +144,7 @@
_GLIBCXX_END_NAMESPACE
-#if _GLIBCXX_USE_C99
+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
#undef snprintf
#undef vfscanf

View File

@ -1,13 +0,0 @@
diff -durN gcc-4.2.1.orig/libstdc++-v3/configure gcc-4.2.1/libstdc++-v3/configure
--- gcc-4.2.1.orig/libstdc++-v3/configure 2007-08-03 20:30:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/configure 2007-08-03 20:33:56.000000000 +0200
@@ -7514,6 +7514,9 @@
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <complex.h>
+#ifdef __UCLIBC__
+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
+#endif
int
main ()
{

View File

@ -1,26 +0,0 @@
diff -durN gcc-4.2.1.orig/libstdc++-v3/include/ext/rope gcc-4.2.1/libstdc++-v3/include/ext/rope
--- gcc-4.2.1.orig/libstdc++-v3/include/ext/rope 2006-10-17 13:56:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/include/ext/rope 2007-08-03 20:34:23.000000000 +0200
@@ -58,6 +58,9 @@
#include <bits/allocator.h>
#include <ext/hash_fun.h>
+/* cope w/ index defined as macro, SuSv3 proposal */
+#undef index
+
# ifdef __GC
# define __GC_CONST const
# else
diff -durN gcc-4.2.1.orig/libstdc++-v3/include/ext/ropeimpl.h gcc-4.2.1/libstdc++-v3/include/ext/ropeimpl.h
--- gcc-4.2.1.orig/libstdc++-v3/include/ext/ropeimpl.h 2006-10-17 13:56:21.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/include/ext/ropeimpl.h 2007-08-03 20:34:23.000000000 +0200
@@ -54,6 +54,9 @@
#include <ext/memory> // For uninitialized_copy_n
#include <ext/numeric> // For power
+/* cope w/ index defined as macro, SuSv3 proposal */
+#undef index
+
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
using std::size_t;

View File

@ -1,48 +0,0 @@
diff -durN gcc-4.2.1.orig/libmudflap/mf-hooks2.c gcc-4.2.1/libmudflap/mf-hooks2.c
--- gcc-4.2.1.orig/libmudflap/mf-hooks2.c 2005-09-23 23:58:39.000000000 +0200
+++ gcc-4.2.1/libmudflap/mf-hooks2.c 2007-08-03 20:35:09.000000000 +0200
@@ -427,7 +427,7 @@
{
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
- bzero (s, n);
+ memset (s, 0, n);
}
@@ -437,7 +437,7 @@
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
- bcopy (src, dest, n);
+ memmove (dest, src, n);
}
@@ -447,7 +447,7 @@
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
- return bcmp (s1, s2, n);
+ return n == 0 ? 0 : memcmp (s1, s2, n);
}
@@ -456,7 +456,7 @@
size_t n = strlen (s);
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
- return index (s, c);
+ return strchr (s, c);
}
@@ -465,7 +465,7 @@
size_t n = strlen (s);
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
- return rindex (s, c);
+ return strrchr (s, c);
}
/* XXX: stpcpy, memccpy */

View File

@ -1,36 +0,0 @@
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.h
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/messages_members.h 2007-08-03 20:31:54.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/messages_members.h 2007-08-03 20:35:40.000000000 +0200
@@ -32,7 +32,8 @@
//
// Written by Benjamin Kosnik <bkoz@redhat.com>
-
+namespace std
+{
#ifdef __UCLIBC_MJN3_ONLY__
#warning fix prototypes for *textdomain funcs
#endif
@@ -115,3 +116,4 @@
this->_S_create_c_locale(this->_M_c_locale_messages, __s);
}
}
+}
diff -durN gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.2.1/libstdc++-v3/config/locale/uclibc/time_members.h
--- gcc-4.2.1.orig/libstdc++-v3/config/locale/uclibc/time_members.h 2007-08-03 20:31:54.000000000 +0200
+++ gcc-4.2.1/libstdc++-v3/config/locale/uclibc/time_members.h 2007-08-03 20:35:40.000000000 +0200
@@ -33,7 +33,8 @@
//
// Written by Benjamin Kosnik <bkoz@redhat.com>
-
+namespace std
+{
template<typename _CharT>
__timepunct<_CharT>::__timepunct(size_t __refs)
: facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
@@ -74,3 +75,4 @@
delete _M_data;
_S_destroy_c_locale(_M_c_locale_timepunct);
}
+}

View File

@ -1,12 +0,0 @@
diff -durN gcc-4.2.1.orig/gcc/Makefile.in gcc-4.2.1/gcc/Makefile.in
--- gcc-4.2.1.orig/gcc/Makefile.in 2007-05-31 17:37:38.000000000 +0200
+++ gcc-4.2.1/gcc/Makefile.in 2007-08-03 20:36:14.000000000 +0200
@@ -2660,7 +2660,7 @@
# FIXME: writing proper dependencies for this is a *LOT* of work.
libbackend.o : $(OBJS-common:.o=.c) $(out_file) \
insn-config.h insn-flags.h insn-codes.h insn-constants.h \
- insn-attr.h $(DATESTAMP) $(BASEVER) $(DEVPHASE)
+ insn-attr.h $(DATESTAMP) $(BASEVER) $(DEVPHASE) gcov-iov.h
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
-DTARGET_NAME=\"$(target_noncanonical)\" \
-DLOCALEDIR=\"$(localedir)\" \

View File

@ -1,64 +0,0 @@
diff -durN gcc-4.2.1.orig/gcc/config/arm/linux-elf.h gcc-4.2.1/gcc/config/arm/linux-elf.h
--- gcc-4.2.1.orig/gcc/config/arm/linux-elf.h 2006-02-17 00:29:10.000000000 +0100
+++ gcc-4.2.1/gcc/config/arm/linux-elf.h 2007-08-03 20:36:43.000000000 +0200
@@ -28,19 +28,33 @@
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (ARM GNU/Linux with ELF)", stderr);
+/*
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
+ * (big endian) configurations.
+ */
+#if TARGET_BIG_ENDIAN_DEFAULT
+#define TARGET_ENDIAN_DEFAULT MASK_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
+
#undef TARGET_DEFAULT_FLOAT_ABI
#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (0)
+#define TARGET_DEFAULT (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", "mno-thumb-interwork" }
+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
/* Now we define the strings used to build the spec file. */
#undef LIB_SPEC
@@ -61,7 +75,7 @@
%{rdynamic:-export-dynamic} \
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
-X \
- %{mbig-endian:-EB}" \
+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
SUBTARGET_EXTRA_LINK_SPEC
#undef LINK_SPEC
diff -durN gcc-4.2.1.orig/gcc/config.gcc gcc-4.2.1/gcc/config.gcc
--- gcc-4.2.1.orig/gcc/config.gcc 2007-08-03 20:29:52.000000000 +0200
+++ gcc-4.2.1/gcc/config.gcc 2007-08-03 20:36:43.000000000 +0200
@@ -705,6 +705,11 @@
tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
tmake_file="${tmake_file} t-linux arm/t-arm"
case ${target} in
+ arm*b-*)
+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+ ;;
+ esac
+ case ${target} in
arm*-*-linux-*eabi)
tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"

View File

@ -1,33 +0,0 @@
Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote:
I tried to use crosstool-ng to generate a toolchain for Linux on big
endian arm with recent versions of gcc, glibc, etc... but had a few
problems.
It appears that the gcc patch (for gcc 4.2.x)
for big-endian arm (240-arm-bigendian.patch) lacks the change attached
to this mail as 240-arm-bigendian2.patch.
--- gcc-4.2.4/gcc/config/arm/bpabi.h~ 2007-09-01 17:28:30.000000000 +0200
+++ gcc-4.2.4/gcc/config/arm/bpabi.h 2009-01-05 19:19:10.000000000 +0100
@@ -32,9 +32,19 @@
#undef FPUTYPE_DEFAULT
#define FPUTYPE_DEFAULT FPUTYPE_VFP
+/*
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
+ * (big endian) configurations.
+ */
+#if TARGET_BIG_ENDIAN_DEFAULT
+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
+#else
+#define TARGET_ENDIAN_DEFAULT 0
+#endif
+
/* EABI targets should enable interworking by default. */
#undef TARGET_DEFAULT
-#define TARGET_DEFAULT MASK_INTERWORK
+#define TARGET_DEFAULT (MASK_INTERWORK | TARGET_ENDIAN_DEFAULT)
/* The ARM BPABI functions return a boolean; they use no special
calling convention. */

View File

@ -1,58 +0,0 @@
This patch (C) 2007 Yann E. MORIN
Licensed under GPL v2.
First hunk of this patch solves compiling uClibc:
make[1]: Entering directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
LD libuClibc-0.9.29.so
libc/libc_so.a(difftime.os): In function `difftime':
difftime.c:(.text+0x8): undefined reference to `__floatsidf'
difftime.c:(.text+0x2c): undefined reference to `__subdf3'
libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr':
_fpmaxtostr.c:(.text+0xd4): undefined reference to `__nedf2'
_fpmaxtostr.c:(.text+0xf8): undefined reference to `__eqdf2'
_fpmaxtostr.c:(.text+0x114): undefined reference to `__divdf3'
_fpmaxtostr.c:(.text+0x120): undefined reference to `__ltdf2'
_fpmaxtostr.c:(.text+0x1c4): undefined reference to `__muldf3'
_fpmaxtostr.c:(.text+0x388): undefined reference to `__gedf2'
_fpmaxtostr.c:(.text+0x430): undefined reference to `__adddf3'
libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
__psfs_do_numeric.c:(.text+0x520): undefined reference to `__truncdfsf2'
libc/libc_so.a(strtof.os): In function `strtof':
strtof.c:(.text+0x1c): undefined reference to `__extendsfdf2'
/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/cc_core_prefix/lib/gcc/arm-linux-uclibc/4.1.1/libgcc.a(_fixunsdfsi.o):
In function `__fixunsdfsi':
libgcc2.c:(.text+0x34): undefined reference to `__fixdfsi'
make[2]: *** [lib/libc.so] Error 1
make[1]: *** [lib/libc.so.0] Error 2
make[1]: Leaving directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
make: *** [/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc/lib/libc.a]
Error 2
The second hunk fixes building final gcc because soft-float implies using -lfloat (which we don't have).
diff -dur gcc-4.2.0.orig/gcc/config.gcc gcc-4.2.0/gcc/config.gcc
--- gcc-4.2.0.orig/gcc/config.gcc 2007-07-15 11:24:18.000000000 +0200
+++ gcc-4.2.0/gcc/config.gcc 2007-07-15 11:26:02.000000000 +0200
@@ -721,7 +721,7 @@
default_use_cxa_atexit=yes
;;
*)
- tmake_file="$tmake_file arm/t-linux"
+ tmake_file="$tmake_file arm/t-linux arm/t-arm-elf"
;;
esac
tm_file="$tm_file arm/aout.h arm/arm.h"
diff -dur gcc-4.2.0.orig/gcc/config/arm/linux-elf.h gcc-4.2.0/gcc/config/arm/linux-elf.h
--- gcc-4.2.0.orig/gcc/config/arm/linux-elf.h 2007-07-15 11:24:18.000000000 +0200
+++ gcc-4.2.0/gcc/config/arm/linux-elf.h 2007-07-15 11:26:02.000000000 +0200
@@ -63,7 +63,7 @@
%{shared:-lc} \
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
+#define LIBGCC_SPEC "-lgcc"
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"

View File

@ -1,24 +0,0 @@
diff -durN gcc-4.2.1.orig/gcc/stmt.c gcc-4.2.1/gcc/stmt.c
--- gcc-4.2.1.orig/gcc/stmt.c 2007-07-19 05:25:32.000000000 +0200
+++ gcc-4.2.1/gcc/stmt.c 2007-08-03 20:37:19.000000000 +0200
@@ -2512,7 +2512,11 @@
use_cost_table
= (TREE_CODE (orig_type) != ENUMERAL_TYPE
&& estimate_case_costs (case_list));
- balance_case_nodes (&case_list, NULL);
+ /* When optimizing for size, we want a straight list to avoid
+ jumps as much as possible. This basically creates an if-else
+ chain. */
+ if (!optimize_size)
+ balance_case_nodes (&case_list, NULL);
emit_case_nodes (index, case_list, default_label, index_type);
emit_jump (default_label);
}
@@ -3070,6 +3074,7 @@
{
if (!node_has_low_bound (node, index_type))
{
+ if (!optimize_size) /* don't jl to the .default_label. */
emit_cmp_and_jump_insns (index,
convert_modes
(mode, imode,

View File

@ -1,21 +0,0 @@
diff -uNpr gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c
--- gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c 2007-03-05 11:54:00.000000000 -0500
+++ gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c 2008-01-31 17:51:24.000000000 -0500
@@ -70,6 +70,8 @@ Software Foundation, 51 Franklin Street,
but GCC currently generates poor code when a union is used to turn
a long double into a pair of doubles. */
+#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
+
long double __gcc_qadd (double, double, double, double);
long double __gcc_qsub (double, double, double, double);
long double __gcc_qmul (double, double, double, double);
@@ -219,8 +221,6 @@ __gcc_qdiv (double a, double b, double c
return z.ldval;
}
-#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
-
long double __gcc_qneg (double, double);
int __gcc_qeq (double, double, double, double);
int __gcc_qne (double, double, double, double);

View File

@ -1,13 +0,0 @@
diff -durN gcc-4.2.3.orig/gcc/config/arm/linux-eabi.h gcc-4.2.3/gcc/config/arm/linux-eabi.h
--- gcc-4.2.3.orig/gcc/config/arm/linux-eabi.h 2007-09-01 17:28:30.000000000 +0200
+++ gcc-4.2.3/gcc/config/arm/linux-eabi.h 2008-05-25 23:47:36.000000000 +0200
@@ -47,7 +47,8 @@
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
#undef SUBTARGET_EXTRA_LINK_SPEC
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"
+#define SUBTARGET_EXTRA_LINK_SPEC \
+ " %{mlittle-endian:-m armelf_linux_eabi} %{mbig-endian:-m armelfb_linux_eabi}"
/* Use ld-linux.so.3 so that it will be possible to run "classic"
GNU/Linux binaries on an EABI system. */

View File

@ -1,17 +0,0 @@
--- gcc-4.2.1-stock/gcc/config/alpha/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500
+++ gcc-4.2.1/gcc/config/alpha/linux-unwind.h 2007-09-01 20:21:34.000000000 -0500
@@ -29,6 +29,9 @@ Boston, MA 02110-1301, USA. */
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
+/* Don't use this if inhibit_libc is set
+ The build for this target will fail trying to include missing headers */
+#ifndef inhibit_libc
#include <signal.h>
#include <sys/ucontext.h>
@@ -80,3 +83,4 @@ alpha_fallback_frame_state (struct _Unwi
fs->retaddr_column = 64;
return _URC_NO_REASON;
}
+#endif /* inhibit_libc */

View File

@ -1,43 +0,0 @@
Fix building gfortran for ARM.
http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01010.html
----
The patch below fixes a crash building libgfortran on arm-linux-gnueabi.
This target doesn't really have a 128-bit integer type, however it does use
TImode to represent the return value of certain special ABI defined library
functions. This results in type_for_size(TImode) being called.
Because TImode deosn't correspond to any gfortran integer kind
gfc_type_for_size returns NULL and we segfault shortly after.
The patch below fixes this by making gfc_type_for_size handle TImode in the
same way as the C frontend.
Tested on x86_64-linux and arm-linux-gnueabi.
Applied to trunk.
Paul
2007-05-15 Paul Brook <paul@codesourcery.com>
gcc/fortran/
* trans-types.c (gfc_type_for_size): Handle signed TImode.
diff -durN gcc-4.2.3.old/gcc/fortran/trans-types.c gcc-4.2.3/gcc/fortran/trans-types.c
--- gcc-4.2.3.old/gcc/fortran/trans-types.c 2007-08-31 10:27:50.000000000 +0200
+++ gcc-4.2.3/gcc/fortran/trans-types.c 2008-07-17 09:54:20.000000000 +0200
@@ -1799,6 +1799,13 @@
if (type && bits == TYPE_PRECISION (type))
return type;
}
+
+ /* Handle TImode as a special case because it is used by some backends
+ (eg. ARM) even though it is not available for normal use. */
+#if HOST_BITS_PER_WIDE_INT >= 64
+ if (bits == TYPE_PRECISION (intTI_type_node))
+ return intTI_type_node;
+#endif
}
else
{

View File

@ -1,26 +0,0 @@
On 20081011, Khem RAJ writes:
You have to bar gcc trying to build unwinding at stage 1. Try the
attached patch and see if it helps.
gcc/config/sh/linux-unwind.h | 3 +++
1 file changed, 3 insertions(+)
Index: gcc-4_2-branch/gcc/config/sh/linux-unwind.h
===================================================================
--- gcc-4_2-branch.orig/gcc/config/sh/linux-unwind.h 2008-07-01 17:24:40.000000000 -0700
+++ gcc-4_2-branch/gcc/config/sh/linux-unwind.h 2008-07-01 17:25:47.000000000 -0700
@@ -26,6 +26,8 @@ along with this program; see the file CO
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
+#ifndef inhibit_libc
+
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
@@ -251,3 +253,4 @@ sh_fallback_frame_state (struct _Unwind_
return _URC_NO_REASON;
}
#endif /* defined (__SH5__) */
+#endif /* ifndef inhibit_libc */

View File

@ -1,32 +0,0 @@
Vampirised from:
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
diff -durN gcc-4.2.2.orig/gcc/mklibgcc.in gcc-4.2.2/gcc/mklibgcc.in
--- gcc-4.2.2.orig/gcc/mklibgcc.in 2006-07-04 22:20:01.000000000 +0200
+++ gcc-4.2.2/gcc/mklibgcc.in 2011-08-31 16:24:03.674690016 +0200
@@ -223,8 +223,8 @@
if [ "$LIBUNWIND" ]; then
libunwind_a=$dir/libunwind.a
fi
+ libgcc_eh_a=$dir/libgcc_eh.a
if [ "$SHLIB_LINK" ]; then
- libgcc_eh_a=$dir/libgcc_eh.a
libgcc_s_so=$dir/libgcc_s${SHLIB_EXT}
if [ "$LIBUNWIND" ]; then
libunwind_so=$dir/libunwind${SHLIB_EXT}
@@ -889,11 +889,11 @@
echo ' chmod 644' ${ldir}/libgcov.a
echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcov.a
- if [ "$SHLIB_LINK" ]; then
- echo ' $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/
- echo ' chmod 644' ${ldir}/libgcc_eh.a
- echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a
+ echo ' $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/
+ echo ' chmod 644' ${ldir}/libgcc_eh.a
+ echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a
+ if [ "$SHLIB_LINK" ]; then
shlib_slibdir_qual=
os_multilib_dir=`$GCC_FOR_TARGET $flags --print-multi-os-directory`
if [ "$os_multilib_dir" != . ]; then

View File

@ -1,39 +0,0 @@
Original patch from: ../4.3.2/100-alpha-mieee-default.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/00_all_gcc-4.1-alpha-mieee-default.patch
Set the default behavior on alpha to use -mieee since the large majority of
time we want this (bad/weird things can happen with packages built without
-mieee).
To satisfy those people who may not want -mieee forced on them all the time,
we also provide -mno-ieee.
Patch by Mike Frysinger <vapier@gentoo.org>
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/alpha/alpha.h gcc-4.3.3/gcc/config/alpha/alpha.h
--- gcc-4.3.3.orig/gcc/config/alpha/alpha.h 2007-12-06 14:25:37.000000000 +0100
+++ gcc-4.3.3/gcc/config/alpha/alpha.h 2009-01-27 22:19:02.000000000 +0100
@@ -95,6 +95,8 @@
while (0)
#endif
+#define CPP_SPEC "%{!no-ieee:-mieee}"
+
#define WORD_SWITCH_TAKES_ARG(STR) \
(!strcmp (STR, "rpath") || DEFAULT_WORD_SWITCH_TAKES_ARG(STR))
diff -durN gcc-4.3.3.orig/gcc/config/alpha/alpha.opt gcc-4.3.3/gcc/config/alpha/alpha.opt
--- gcc-4.3.3.orig/gcc/config/alpha/alpha.opt 2007-08-02 12:49:31.000000000 +0200
+++ gcc-4.3.3/gcc/config/alpha/alpha.opt 2009-01-27 22:19:02.000000000 +0100
@@ -39,7 +39,7 @@
Request IEEE-conformant math library routines (OSF/1)
mieee
-Target Report RejectNegative Mask(IEEE)
+Target Report Mask(IEEE)
Emit IEEE-conformant code, without inexact exceptions
mieee-with-inexact

View File

@ -1,40 +0,0 @@
Original patch from: ../4.3.2/110-trampolinewarn.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/00_all_gcc-trampolinewarn.patch
This trivial patch causes gcc to emit a warning whenever
it generates a trampoline. These are otherwise hard to
locate. It is rigged to default ON - to have it default
to OFF remove the text 'Init(1)' from the common.opt
patch, leaving just 'Common Var(warn_trampolines)'.
Kevin F. Quinn <kevquinn@gentoo.org> 17 Jan 2006
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/builtins.c gcc-4.3.3/gcc/builtins.c
--- gcc-4.3.3.orig/gcc/builtins.c 2008-08-19 18:37:13.000000000 +0200
+++ gcc-4.3.3/gcc/builtins.c 2009-01-27 22:19:12.000000000 +0100
@@ -5662,6 +5662,9 @@
trampolines_created = 1;
INITIALIZE_TRAMPOLINE (r_tramp, r_func, r_chain);
+ if (warn_trampolines)
+ warning (OPT_Wtrampolines, "generating trampoline in object (requires executable stack)");
+
return const0_rtx;
}
diff -durN gcc-4.3.3.orig/gcc/common.opt gcc-4.3.3/gcc/common.opt
--- gcc-4.3.3.orig/gcc/common.opt 2008-01-22 15:11:44.000000000 +0100
+++ gcc-4.3.3/gcc/common.opt 2009-01-27 22:19:12.000000000 +0100
@@ -182,6 +182,10 @@
Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers
+Wtrampolines
+Common Var(warn_trampolines) Init(1)
+Warn whenever a trampoline is generated
+
Wuninitialized
Common Var(warn_uninitialized) Warning
Warn about uninitialized automatic variables

View File

@ -1,52 +0,0 @@
Original patch from: ../4.3.2/120-java-nomulti.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/03_all_gcc43-java-nomulti.patch
-= END original header =-
diff -durN gcc-4.3.3.orig/libjava/configure gcc-4.3.3/libjava/configure
--- gcc-4.3.3.orig/libjava/configure 2009-01-24 11:32:29.000000000 +0100
+++ gcc-4.3.3/libjava/configure 2009-01-27 22:19:14.000000000 +0100
@@ -1018,6 +1018,8 @@
--enable-gconf-peer compile GConf native peers for util.preferences
--enable-java-maintainer-mode
allow rebuilding of .class and .h files
+ --enable-libjava-multilib
+ build libjava as multilib
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-maintainer-mode enable make rules and dependencies not useful
@@ -1850,6 +1852,16 @@
fi
+# Check whether --enable-libjava-multilib was given.
+if test "${enable_libjava_multilib+set}" = set; then
+ enableval=$enable_libjava_multilib;
+fi
+
+if test "$enable_libjava_multilib" = no; then
+ multilib=no
+ ac_configure_args="$ac_configure_args --disable-multilib"
+fi
+
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
diff -durN gcc-4.3.3.orig/libjava/configure.ac gcc-4.3.3/libjava/configure.ac
--- gcc-4.3.3.orig/libjava/configure.ac 2008-07-02 23:23:43.000000000 +0200
+++ gcc-4.3.3/libjava/configure.ac 2009-01-27 22:19:14.000000000 +0100
@@ -82,6 +82,13 @@
[allow rebuilding of .class and .h files]))
AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
+AC_ARG_ENABLE(libjava-multilib,
+ AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
+if test "$enable_libjava_multilib" = no; then
+ multilib=no
+ ac_configure_args="$ac_configure_args --disable-multilib"
+fi
+
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
GCC_NO_EXECUTABLES

View File

@ -1,49 +0,0 @@
Original patch from: ../4.3.2/130-cross-compile.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/08_all_gcc-4.1-cross-compile.patch
Some notes on the 'bootstrap with or without libc headers' debate:
http://linuxfromscratch.org/pipermail/lfs-dev/2005-July/052409.html
http://gcc.gnu.org/ml/gcc/2005-07/msg01195.html
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/configure gcc-4.3.3/gcc/configure
--- gcc-4.3.3.orig/gcc/configure 2008-08-01 11:51:03.000000000 +0200
+++ gcc-4.3.3/gcc/configure 2009-01-27 22:19:16.000000000 +0100
@@ -13442,7 +13442,7 @@
| powerpc*-*-*,powerpc64*-*-*)
CROSS="$CROSS -DNATIVE_CROSS" ;;
esac
-elif test "x$TARGET_SYSTEM_ROOT" != x; then
+elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
SYSTEM_HEADER_DIR=$build_system_header_dir
fi
diff -durN gcc-4.3.3.orig/gcc/configure.ac gcc-4.3.3/gcc/configure.ac
--- gcc-4.3.3.orig/gcc/configure.ac 2008-08-01 11:51:03.000000000 +0200
+++ gcc-4.3.3/gcc/configure.ac 2009-01-27 22:19:16.000000000 +0100
@@ -1749,7 +1749,7 @@
| powerpc*-*-*,powerpc64*-*-*)
CROSS="$CROSS -DNATIVE_CROSS" ;;
esac
-elif test "x$TARGET_SYSTEM_ROOT" != x; then
+elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
SYSTEM_HEADER_DIR=$build_system_header_dir
fi
diff -durN gcc-4.3.3.orig/gcc/unwind-dw2.c gcc-4.3.3/gcc/unwind-dw2.c
--- gcc-4.3.3.orig/gcc/unwind-dw2.c 2008-09-25 00:44:28.000000000 +0200
+++ gcc-4.3.3/gcc/unwind-dw2.c 2009-01-27 22:19:16.000000000 +0100
@@ -334,9 +334,11 @@
}
#endif
+#ifndef inhibit_libc
#ifdef MD_UNWIND_SUPPORT
#include MD_UNWIND_SUPPORT
#endif
+#endif
/* Extract any interesting information from the CIE for the translation
unit F belongs to. Return a pointer to the byte after the augmentation,

View File

@ -1,19 +0,0 @@
Original patch from: ../4.3.2/140-netbsd-symbolic.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/11_all_gcc-netbsd-symbolic.patch
http://bugs.gentoo.org/122698
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/netbsd-elf.h gcc-4.3.3/gcc/config/netbsd-elf.h
--- gcc-4.3.3.orig/gcc/config/netbsd-elf.h 2007-09-03 18:14:04.000000000 +0200
+++ gcc-4.3.3/gcc/config/netbsd-elf.h 2009-01-27 22:19:18.000000000 +0100
@@ -82,6 +82,7 @@
#define NETBSD_LINK_SPEC_ELF \
"%{assert*} %{R*} %{rpath*} \
%{shared:-shared} \
+ %{symbolic:-Bsymbolic} \
%{!shared: \
-dc -dp \
%{!nostdlib: \

View File

@ -1,35 +0,0 @@
Original patch from: ../4.3.2/150-sparc64-bsd.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/14_all_gcc-sparc64-bsd.patch
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/sparc/freebsd.h gcc-4.3.3/gcc/config/sparc/freebsd.h
--- gcc-4.3.3.orig/gcc/config/sparc/freebsd.h 2007-08-02 12:49:31.000000000 +0200
+++ gcc-4.3.3/gcc/config/sparc/freebsd.h 2009-01-27 22:19:20.000000000 +0100
@@ -25,9 +25,22 @@
/* FreeBSD needs the platform name (sparc64) defined.
Emacs needs to know if the arch is 64 or 32-bits. */
-#undef CPP_CPU64_DEFAULT_SPEC
-#define CPP_CPU64_DEFAULT_SPEC \
- "-D__sparc64__ -D__sparc_v9__ -D__sparcv9 -D__arch64__"
+#undef FBSD_TARGET_CPU_CPP_BUILTINS
+#define FBSD_TARGET_CPU_CPP_BUILTINS() \
+ do \
+ { \
+ if (TARGET_ARCH64) \
+ { \
+ builtin_define ("__sparc64__"); \
+ builtin_define ("__sparc_v9__"); \
+ builtin_define ("__sparcv9"); \
+ } \
+ else \
+ builtin_define ("__sparc"); \
+ builtin_define ("__sparc__"); \
+ } \
+ while (0)
+
#define LINK_SPEC "%(link_arch) \
%{!mno-relax:%{!r:-relax}} \

View File

@ -1,81 +0,0 @@
Original patch from: ../4.3.2/160-flatten-switch-stmt-00.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/18_all_904-flatten-switch-stmt-00.patch
http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00927.html
Hi,
The attached patch makes sure that we create smaller object code for
simple switch statements. We just make sure to flatten the switch
statement into an if-else chain, basically.
This fixes a size-regression as compared to gcc-3.4, as can be seen
below.
2007-04-15 Bernhard Fischer <..>
* stmt.c (expand_case): Do not create a complex binary tree when
optimizing for size but rather use the simple ordered list.
(emit_case_nodes): do not emit jumps to the default_label when
optimizing for size.
Not regtested so far.
Comments?
Attached is the test switch.c mentioned below.
$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
gcc-$i -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done
$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
gcc-$i -UCHAIN -Os -o switch-$i.o -c switch.c ;done
$ size switch-*.o
text data bss dec hex filename
169 0 0 169 a9 switch-2.95.o
115 0 0 115 73 switch-3.3.o
103 0 0 103 67 switch-3.4.o
124 0 0 124 7c switch-4.0.o
124 0 0 124 7c switch-4.1.o
124 0 0 124 7c switch-4.2.orig-HEAD.o
95 0 0 95 5f switch-4.3-HEAD.o
124 0 0 124 7c switch-4.3.orig-HEAD.o
166 0 0 166 a6 switch-CHAIN-2.95.o
111 0 0 111 6f switch-CHAIN-3.3.o
95 0 0 95 5f switch-CHAIN-3.4.o
95 0 0 95 5f switch-CHAIN-4.0.o
95 0 0 95 5f switch-CHAIN-4.1.o
95 0 0 95 5f switch-CHAIN-4.2.orig-HEAD.o
95 0 0 95 5f switch-CHAIN-4.3-HEAD.o
95 0 0 95 5f switch-CHAIN-4.3.orig-HEAD.o
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="gcc-4.3.gcc-flatten-switch-stmt.00.diff"
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/stmt.c gcc-4.3.3/gcc/stmt.c
--- gcc-4.3.3.orig/gcc/stmt.c 2008-05-09 20:12:13.000000000 +0200
+++ gcc-4.3.3/gcc/stmt.c 2009-01-27 22:19:28.000000000 +0100
@@ -2509,7 +2509,11 @@
use_cost_table
= (TREE_CODE (orig_type) != ENUMERAL_TYPE
&& estimate_case_costs (case_list));
- balance_case_nodes (&case_list, NULL);
+ /* When optimizing for size, we want a straight list to avoid
+ jumps as much as possible. This basically creates an if-else
+ chain. */
+ if (!optimize_size)
+ balance_case_nodes (&case_list, NULL);
emit_case_nodes (index, case_list, default_label, index_type);
emit_jump (default_label);
}
@@ -3067,6 +3071,7 @@
{
if (!node_has_low_bound (node, index_type))
{
+ if (!optimize_size) /* don't jl to the .default_label. */
emit_cmp_and_jump_insns (index,
convert_modes
(mode, imode,

View File

@ -1,17 +0,0 @@
Original patch from: ../4.3.2/170-libiberty-pic.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/51_all_gcc-3.4-libiberty-pic.patch
-= END original header =-
diff -durN gcc-4.3.3.orig/libiberty/Makefile.in gcc-4.3.3/libiberty/Makefile.in
--- gcc-4.3.3.orig/libiberty/Makefile.in 2007-07-25 08:26:45.000000000 +0200
+++ gcc-4.3.3/libiberty/Makefile.in 2009-01-27 22:19:30.000000000 +0100
@@ -225,6 +225,7 @@
$(AR) $(AR_FLAGS) $(TARGETLIB) \
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
$(RANLIB) $(TARGETLIB); \
+ cp $(TARGETLIB) ../ ; \
cd ..; \
else true; fi

View File

@ -1,30 +0,0 @@
Original patch from: ../4.3.2/180-superh-default-multilib.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/53_all_gcc4-superh-default-multilib.patch
The gcc-3.x toolchains would contain all the targets by default. With gcc-4,
you have to actually list out the multilibs you want or you will end up with
just one when using targets like 'sh4-linux-gnu'.
The resulting toolchain can't even build a kernel as the kernel needs to build
with the nofpu flag to be sure that no fpu ops are generated.
Here we restore the gcc-3.x behavior; the additional overhead of building all
of these multilibs by default is negligible.
http://bugs.gentoo.org/140205
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config.gcc gcc-4.3.3/gcc/config.gcc
--- gcc-4.3.3.orig/gcc/config.gcc 2008-11-20 18:09:53.000000000 +0100
+++ gcc-4.3.3/gcc/config.gcc 2009-01-27 22:19:32.000000000 +0100
@@ -2275,7 +2275,7 @@
if test x${sh_multilibs} = x ; then
case ${target} in
sh64-superh-linux* | \
- sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
+ sh[1234]*) sh_multilibs=`cd ${srcdir}/config/sh ; echo t-mlib-sh[1-4]* | sed 's:t-mlib-sh:,m:g;s: ::g'` ;;
sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
sh*-*-linux*) sh_multilibs=m1,m3e,m4 ;;

View File

@ -1,61 +0,0 @@
Original patch from: ../4.3.2/190-libstdc++-pic.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/54_all_300-libstdc++-pic.patch
install libstdc++_pic.a if we have pic objs
-= END original header =-
diff -durN gcc-4.3.5.orig/libstdc++-v3/src/Makefile.am gcc-4.3.5/libstdc++-v3/src/Makefile.am
--- gcc-4.3.5.orig/libstdc++-v3/src/Makefile.am 2008-02-29 19:26:50.000000000 +0100
+++ gcc-4.3.5/libstdc++-v3/src/Makefile.am 2010-09-19 18:58:40.000000000 +0200
@@ -289,6 +289,13 @@
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
+install-exec-local:
+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
+ if [ x"$$pic_objs" != x ]; then \
+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
+ fi
+
# Added bits to build debug library.
if GLIBCXX_BUILD_DEBUG
all-local: build_debug
diff -durN gcc-4.3.5.orig/libstdc++-v3/src/Makefile.in gcc-4.3.5/libstdc++-v3/src/Makefile.in
--- gcc-4.3.5.orig/libstdc++-v3/src/Makefile.in 2010-05-06 19:19:46.000000000 +0200
+++ gcc-4.3.5/libstdc++-v3/src/Makefile.in 2010-09-19 19:01:43.000000000 +0200
@@ -646,7 +646,7 @@
install-data-am: install-data-local
-install-exec-am: install-toolexeclibLTLIBRARIES
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
install-info: install-info-am
@@ -685,7 +685,7 @@
mostlyclean mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-info-am \
- uninstall-toolexeclibLTLIBRARIES
+ uninstall-toolexeclibLTLIBRARIES install-exec-local
# Symbol versioning for shared libraries.
@@ -811,6 +811,14 @@
install_debug:
(cd ${debugdir} && $(MAKE) \
toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
+
+install-exec-local:
+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
+ if [ x"$$pic_objs" != x ]; then \
+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
+ fi
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,66 +0,0 @@
Original patch from: ../4.3.2/200-pr24170.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/61_all_gcc43-pr24170.patch
http://gcc.gnu.org/PR24170
2008-02-20 Tom Tromey <tromey@redhat.com>
PR libgcj/24170:
* java/io/natFilePosix.cc (File::performList): Don't use
readdir_r.
* configure, include/config.h.in: Rebuilt.
* configure.ac: Don't check for readdir_r.
-= END original header =-
diff -durN gcc-4.3.3.orig/libjava/configure.ac gcc-4.3.3/libjava/configure.ac
--- gcc-4.3.3.orig/libjava/configure.ac 2009-01-27 22:19:16.000000000 +0100
+++ gcc-4.3.3/libjava/configure.ac 2009-01-27 22:19:36.000000000 +0100
@@ -1030,7 +1030,7 @@
PLATFORMNET=NoNet
else
AC_CHECK_FUNCS([strerror_r select fstat open fsync sleep opendir \
- localtime_r readdir_r getpwuid_r getcwd \
+ localtime_r getpwuid_r getcwd \
access stat lstat mkdir rename rmdir unlink utime chmod readlink \
nl_langinfo setlocale \
inet_pton uname inet_ntoa \
diff -durN gcc-4.3.3.orig/libjava/include/config.h.in gcc-4.3.3/libjava/include/config.h.in
--- gcc-4.3.3.orig/libjava/include/config.h.in 2007-07-31 18:17:21.000000000 +0200
+++ gcc-4.3.3/libjava/include/config.h.in 2009-01-27 22:19:36.000000000 +0100
@@ -214,9 +214,6 @@
/* Define to 1 if you have the <pwd.h> header file. */
#undef HAVE_PWD_H
-/* Define to 1 if you have the `readdir_r' function. */
-#undef HAVE_READDIR_R
-
/* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK
diff -durN gcc-4.3.3.orig/libjava/java/io/natFilePosix.cc gcc-4.3.3/libjava/java/io/natFilePosix.cc
--- gcc-4.3.3.orig/libjava/java/io/natFilePosix.cc 2007-08-04 23:50:01.000000000 +0200
+++ gcc-4.3.3/libjava/java/io/natFilePosix.cc 2009-01-27 22:19:36.000000000 +0100
@@ -1,6 +1,6 @@
// natFile.cc - Native part of File class for POSIX.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2008
Free Software Foundation
This file is part of libgcj.
@@ -292,13 +292,7 @@
java::util::ArrayList *list = new java::util::ArrayList ();
struct dirent *d;
-#if defined(HAVE_READDIR_R) && defined(_POSIX_PTHREAD_SEMANTICS)
- int name_max = pathconf (buf, _PC_NAME_MAX);
- char dbuf[sizeof (struct dirent) + name_max + 1];
- while (readdir_r (dir, (struct dirent *) dbuf, &d) == 0 && d != NULL)
-#else /* HAVE_READDIR_R */
while ((d = readdir (dir)) != NULL)
-#endif /* HAVE_READDIR_R */
{
// Omit "." and "..".
if (d->d_name[0] == '.'

View File

@ -1,101 +0,0 @@
Original patch from: ../4.3.2/210-noteGNUstack-00.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/61_all_gcc4-ia64-noteGNUstack.patch
2004-09-20 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/ppc-asm.h: Add .note.GNU-stack section also
on ppc64-linux.
* config/ia64/lib1funcs.asm: Add .note.GNU-stack section on
ia64-linux.
* config/ia64/crtbegin.asm: Likewise.
* config/ia64/crtend.asm: Likewise.
* config/ia64/crti.asm: Likewise.
* config/ia64/crtn.asm: Likewise.
2004-05-14 Jakub Jelinek <jakub@redhat.com>
* config/ia64/linux.h (TARGET_ASM_FILE_END): Define.
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/ia64/crtbegin.asm gcc-4.3.3/gcc/config/ia64/crtbegin.asm
--- gcc-4.3.3.orig/gcc/config/ia64/crtbegin.asm 2005-09-27 02:52:24.000000000 +0200
+++ gcc-4.3.3/gcc/config/ia64/crtbegin.asm 2009-01-27 22:19:39.000000000 +0100
@@ -255,3 +255,7 @@
.weak __cxa_finalize
#endif
.weak _Jv_RegisterClasses
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.3.3.orig/gcc/config/ia64/crtend.asm gcc-4.3.3/gcc/config/ia64/crtend.asm
--- gcc-4.3.3.orig/gcc/config/ia64/crtend.asm 2005-09-27 02:52:24.000000000 +0200
+++ gcc-4.3.3/gcc/config/ia64/crtend.asm 2009-01-27 22:19:39.000000000 +0100
@@ -122,3 +122,7 @@
br.ret.sptk.many rp
.endp __do_global_ctors_aux
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.3.3.orig/gcc/config/ia64/crti.asm gcc-4.3.3/gcc/config/ia64/crti.asm
--- gcc-4.3.3.orig/gcc/config/ia64/crti.asm 2005-06-25 03:22:41.000000000 +0200
+++ gcc-4.3.3/gcc/config/ia64/crti.asm 2009-01-27 22:19:39.000000000 +0100
@@ -64,3 +64,7 @@
.body
# end of crti.asm
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.3.3.orig/gcc/config/ia64/crtn.asm gcc-4.3.3/gcc/config/ia64/crtn.asm
--- gcc-4.3.3.orig/gcc/config/ia64/crtn.asm 2005-06-25 03:22:41.000000000 +0200
+++ gcc-4.3.3/gcc/config/ia64/crtn.asm 2009-01-27 22:19:39.000000000 +0100
@@ -54,3 +54,7 @@
br.ret.sptk.many b0
# end of crtn.asm
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.3.3.orig/gcc/config/ia64/lib1funcs.asm gcc-4.3.3/gcc/config/ia64/lib1funcs.asm
--- gcc-4.3.3.orig/gcc/config/ia64/lib1funcs.asm 2005-09-27 02:52:24.000000000 +0200
+++ gcc-4.3.3/gcc/config/ia64/lib1funcs.asm 2009-01-27 22:19:39.000000000 +0100
@@ -792,3 +792,7 @@
}
.endp __floattitf
#endif
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.3.3.orig/gcc/config/ia64/linux.h gcc-4.3.3/gcc/config/ia64/linux.h
--- gcc-4.3.3.orig/gcc/config/ia64/linux.h 2006-12-12 16:15:19.000000000 +0100
+++ gcc-4.3.3/gcc/config/ia64/linux.h 2009-01-27 22:19:39.000000000 +0100
@@ -5,6 +5,8 @@
#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+
/* This is for -profile to use -lc_p instead of -lc. */
#undef CC1_SPEC
#define CC1_SPEC "%{profile:-p} %{G*}"
diff -durN gcc-4.3.3.orig/gcc/config/rs6000/ppc-asm.h gcc-4.3.3/gcc/config/rs6000/ppc-asm.h
--- gcc-4.3.3.orig/gcc/config/rs6000/ppc-asm.h 2003-06-04 18:44:51.000000000 +0200
+++ gcc-4.3.3/gcc/config/rs6000/ppc-asm.h 2009-01-27 22:19:39.000000000 +0100
@@ -158,7 +158,7 @@
.size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
#endif
-#if defined __linux__ && !defined __powerpc64__
+#if defined __linux__
.section .note.GNU-stack
.previous
#endif

View File

@ -1,203 +0,0 @@
Original patch from: ../4.3.2/220-noteGNUstack-01.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/62_all_gcc4-noteGNUstack.patch
2005-02-08 Jakub Jelinek <jakub@redhat.com>
* src/alpha/osf.S: Add .note.GNU-stack on Linux.
* src/s390/sysv.S: Likewise.
* src/powerpc/linux64.S: Likewise.
* src/powerpc/linux64_closure.S: Likewise.
* src/powerpc/ppc_closure.S: Likewise.
* src/powerpc/sysv.S: Likewise.
* src/x86/unix64.S: Likewise.
* src/x86/sysv.S: Likewise.
* src/sparc/v8.S: Likewise.
* src/sparc/v9.S: Likewise.
* src/m68k/sysv.S: Likewise.
* src/ia64/unix.S: Likewise.
* src/arm/sysv.S: Likewise.
* ia64_save_regs_in_stack.s: Moved to...
* ia64_save_regs_in_stack.S: ... this. Add .note.GNU-stack
on Linux.
-= END original header =-
diff -durN gcc-4.3.3.orig/boehm-gc/ia64_save_regs_in_stack.S gcc-4.3.3/boehm-gc/ia64_save_regs_in_stack.S
--- gcc-4.3.3.orig/boehm-gc/ia64_save_regs_in_stack.S 1970-01-01 01:00:00.000000000 +0100
+++ gcc-4.3.3/boehm-gc/ia64_save_regs_in_stack.S 2009-01-27 22:25:27.000000000 +0100
@@ -0,0 +1,15 @@
+ .text
+ .align 16
+ .global GC_save_regs_in_stack
+ .proc GC_save_regs_in_stack
+GC_save_regs_in_stack:
+ .bodyfoo.mpg
+ flushrs
+ ;;
+ mov r8=ar.bsp
+ br.ret.sptk.few rp
+ .endp GC_save_regs_in_stack
+
+#ifdef __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/boehm-gc/ia64_save_regs_in_stack.s gcc-4.3.3/boehm-gc/ia64_save_regs_in_stack.s
--- gcc-4.3.3.orig/boehm-gc/ia64_save_regs_in_stack.s 2001-10-15 06:57:59.000000000 +0200
+++ gcc-4.3.3/boehm-gc/ia64_save_regs_in_stack.s 1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
- .text
- .align 16
- .global GC_save_regs_in_stack
- .proc GC_save_regs_in_stack
-GC_save_regs_in_stack:
- .body
- flushrs
- ;;
- mov r8=ar.bsp
- br.ret.sptk.few rp
- .endp GC_save_regs_in_stack
-
diff -durN gcc-4.3.3.orig/libffi/src/alpha/osf.S gcc-4.3.3/libffi/src/alpha/osf.S
--- gcc-4.3.3.orig/libffi/src/alpha/osf.S 2007-04-06 18:24:16.000000000 +0200
+++ gcc-4.3.3/libffi/src/alpha/osf.S 2009-01-27 22:25:27.000000000 +0100
@@ -358,4 +358,8 @@
.byte 16 # uleb128 offset 16*-8
.align 3
$LEFDE3:
+
+#ifdef __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
#endif
diff -durN gcc-4.3.3.orig/libffi/src/arm/sysv.S gcc-4.3.3/libffi/src/arm/sysv.S
--- gcc-4.3.3.orig/libffi/src/arm/sysv.S 2007-09-04 19:52:45.000000000 +0200
+++ gcc-4.3.3/libffi/src/arm/sysv.S 2009-01-27 22:25:27.000000000 +0100
@@ -293,3 +293,6 @@
UNWIND .fnend
.size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",%progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/ia64/unix.S gcc-4.3.3/libffi/src/ia64/unix.S
--- gcc-4.3.3.orig/libffi/src/ia64/unix.S 2005-03-30 23:49:19.000000000 +0200
+++ gcc-4.3.3/libffi/src/ia64/unix.S 2009-01-27 22:25:27.000000000 +0100
@@ -553,3 +553,7 @@
data8 @pcrel(.Lld_hfa_float) // FFI_IA64_TYPE_HFA_FLOAT
data8 @pcrel(.Lld_hfa_double) // FFI_IA64_TYPE_HFA_DOUBLE
data8 @pcrel(.Lld_hfa_ldouble) // FFI_IA64_TYPE_HFA_LDOUBLE
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/m68k/sysv.S gcc-4.3.3/libffi/src/m68k/sysv.S
--- gcc-4.3.3.orig/libffi/src/m68k/sysv.S 2007-05-10 23:29:04.000000000 +0200
+++ gcc-4.3.3/libffi/src/m68k/sysv.S 2009-01-27 22:25:27.000000000 +0100
@@ -207,3 +207,7 @@
rts
CFI_ENDPROC()
.size ffi_closure_struct_SYSV,.-ffi_closure_struct_SYSV
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/powerpc/linux64.S gcc-4.3.3/libffi/src/powerpc/linux64.S
--- gcc-4.3.3.orig/libffi/src/powerpc/linux64.S 2007-11-17 00:24:53.000000000 +0100
+++ gcc-4.3.3/libffi/src/powerpc/linux64.S 2009-01-27 22:25:27.000000000 +0100
@@ -179,3 +179,7 @@
.align 3
.LEFDE1:
#endif
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/powerpc/linux64_closure.S gcc-4.3.3/libffi/src/powerpc/linux64_closure.S
--- gcc-4.3.3.orig/libffi/src/powerpc/linux64_closure.S 2005-08-11 23:18:24.000000000 +0200
+++ gcc-4.3.3/libffi/src/powerpc/linux64_closure.S 2009-01-27 22:25:27.000000000 +0100
@@ -204,3 +204,7 @@
.align 3
.LEFDE1:
#endif
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/powerpc/ppc_closure.S gcc-4.3.3/libffi/src/powerpc/ppc_closure.S
--- gcc-4.3.3.orig/libffi/src/powerpc/ppc_closure.S 2007-12-01 22:00:04.000000000 +0100
+++ gcc-4.3.3/libffi/src/powerpc/ppc_closure.S 2009-01-27 22:25:27.000000000 +0100
@@ -295,3 +295,7 @@
.LEFDE1:
#endif
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/powerpc/sysv.S gcc-4.3.3/libffi/src/powerpc/sysv.S
--- gcc-4.3.3.orig/libffi/src/powerpc/sysv.S 2007-12-01 22:00:04.000000000 +0100
+++ gcc-4.3.3/libffi/src/powerpc/sysv.S 2009-01-27 22:25:27.000000000 +0100
@@ -223,3 +223,7 @@
.align 2
.LEFDE1:
#endif
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/s390/sysv.S gcc-4.3.3/libffi/src/s390/sysv.S
--- gcc-4.3.3.orig/libffi/src/s390/sysv.S 2003-10-21 21:01:58.000000000 +0200
+++ gcc-4.3.3/libffi/src/s390/sysv.S 2009-01-27 22:25:27.000000000 +0100
@@ -427,3 +427,6 @@
#endif
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/sparc/v8.S gcc-4.3.3/libffi/src/sparc/v8.S
--- gcc-4.3.3.orig/libffi/src/sparc/v8.S 2008-11-21 23:13:13.000000000 +0100
+++ gcc-4.3.3/libffi/src/sparc/v8.S 2009-01-27 22:25:27.000000000 +0100
@@ -306,3 +306,7 @@
.byte 0x1f ! uleb128 0x1f
.align WS
.LLEFDE2:
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/sparc/v9.S gcc-4.3.3/libffi/src/sparc/v9.S
--- gcc-4.3.3.orig/libffi/src/sparc/v9.S 2004-01-25 07:58:33.000000000 +0100
+++ gcc-4.3.3/libffi/src/sparc/v9.S 2009-01-27 22:25:27.000000000 +0100
@@ -300,3 +300,7 @@
.align 8
.LLEFDE2:
#endif
+
+#ifdef __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/x86/sysv.S gcc-4.3.3/libffi/src/x86/sysv.S
--- gcc-4.3.3.orig/libffi/src/x86/sysv.S 2008-01-30 15:36:58.000000000 +0100
+++ gcc-4.3.3/libffi/src/x86/sysv.S 2009-01-27 22:25:27.000000000 +0100
@@ -430,3 +430,7 @@
#endif
#endif /* ifndef __x86_64__ */
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif
diff -durN gcc-4.3.3.orig/libffi/src/x86/unix64.S gcc-4.3.3/libffi/src/x86/unix64.S
--- gcc-4.3.3.orig/libffi/src/x86/unix64.S 2005-05-05 06:06:38.000000000 +0200
+++ gcc-4.3.3/libffi/src/x86/unix64.S 2009-01-27 22:25:27.000000000 +0100
@@ -410,3 +410,7 @@
.LEFDE3:
#endif /* __x86_64__ */
+
+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif

View File

@ -1,28 +0,0 @@
Original patch from: ../4.3.2/230-pr34571.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/64_all_gcc43-pr34571.patch
http://gcc.gnu.org/PR34571
2007-12-26 Rask Ingemann Lambertsen <rask@sygehus.dk>
PR target/34571
* config/alpha/alpha.c (alpha_cannot_force_const_mem): Use
symbolic_operand.
* varasm.c (output_constant_pool_1): Fix typo.
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/alpha/alpha.c gcc-4.3.3/gcc/config/alpha/alpha.c
--- gcc-4.3.3.orig/gcc/config/alpha/alpha.c 2008-09-09 01:16:55.000000000 +0200
+++ gcc-4.3.3/gcc/config/alpha/alpha.c 2009-01-27 22:25:29.000000000 +0100
@@ -1113,8 +1113,7 @@
static bool
alpha_cannot_force_const_mem (rtx x)
{
- enum rtx_code code = GET_CODE (x);
- return code == SYMBOL_REF || code == LABEL_REF || code == CONST;
+ return symbolic_operand (x, GET_MODE (x));
}
/* We do not allow indirect calls to be optimized into sibling calls, nor

View File

@ -1,26 +0,0 @@
Original patch from: ../4.3.2/240-pr25343.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/66_all_gcc43-pr25343.patch
http://gcc.gnu.org/PR25343
sniped from Debian
2008-04-27 Roman Zippel <zippel@linux-m68k.org>
* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/host-linux.c gcc-4.3.3/gcc/config/host-linux.c
--- gcc-4.3.3.orig/gcc/config/host-linux.c 2007-08-02 12:49:31.000000000 +0200
+++ gcc-4.3.3/gcc/config/host-linux.c 2009-01-27 22:25:31.000000000 +0100
@@ -84,6 +84,8 @@
# define TRY_EMPTY_VM_SPACE 0x8000000000
#elif defined(__sparc__)
# define TRY_EMPTY_VM_SPACE 0x60000000
+#elif defined(__mc68000__)
+# define TRY_EMPTY_VM_SPACE 0x40000000
#else
# define TRY_EMPTY_VM_SPACE 0
#endif

View File

@ -1,33 +0,0 @@
Original patch from: ../4.3.2/250-sh-pr24836.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/74_all_sh-pr24836.patch
http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348
http://gcc.gnu.org/PR24836
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/configure gcc-4.3.3/gcc/configure
--- gcc-4.3.3.orig/gcc/configure 2009-01-27 22:19:18.000000000 +0100
+++ gcc-4.3.3/gcc/configure 2009-01-27 22:25:33.000000000 +0100
@@ -20689,7 +20689,7 @@
tls_first_minor=14
tls_as_opt="-m64 -Aesame --fatal-warnings"
;;
- sh-*-* | sh[34]-*-*)
+ sh-*-* | sh[34]*-*-*)
conftest_s='
.section ".tdata","awT",@progbits
foo: .long 25
diff -durN gcc-4.3.3.orig/gcc/configure.ac gcc-4.3.3/gcc/configure.ac
--- gcc-4.3.3.orig/gcc/configure.ac 2009-01-27 22:19:18.000000000 +0100
+++ gcc-4.3.3/gcc/configure.ac 2009-01-27 22:25:33.000000000 +0100
@@ -2552,7 +2552,7 @@
tls_first_minor=14
tls_as_opt="-m64 -Aesame --fatal-warnings"
;;
- sh-*-* | sh[34]-*-*)
+ sh-*-* | sh[34]*-*-*)
conftest_s='
.section ".tdata","awT",@progbits
foo: .long 25

View File

@ -1,18 +0,0 @@
Original patch from: ../4.3.2/260-uclibc-conf-noupstream.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_103-uclibc-conf-noupstream.patch
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config.gcc gcc-4.3.3/gcc/config.gcc
--- gcc-4.3.3.orig/gcc/config.gcc 2009-01-27 22:19:34.000000000 +0100
+++ gcc-4.3.3/gcc/config.gcc 2009-01-27 22:25:35.000000000 +0100
@@ -2146,7 +2146,7 @@
;;
sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
- sh-*-linux* | sh[346lbe]*-*-linux* | \
+ sh*-*-linux* | sh[346lbe]*-*-linux* | \
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
sh64-*-netbsd* | sh64l*-*-netbsd*)
tmake_file="${tmake_file} sh/t-sh sh/t-elf"

View File

@ -1,18 +0,0 @@
Original patch from: ../4.3.2/270-missing-execinfo_h.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_301-missing-execinfo_h.patch
-= END original header =-
diff -durN gcc-4.3.3.orig/boehm-gc/include/gc.h gcc-4.3.3/boehm-gc/include/gc.h
--- gcc-4.3.3.orig/boehm-gc/include/gc.h 2007-04-23 23:10:09.000000000 +0200
+++ gcc-4.3.3/boehm-gc/include/gc.h 2009-01-27 22:25:37.000000000 +0100
@@ -503,7 +503,7 @@
#if defined(__linux__) || defined(__GLIBC__)
# include <features.h>
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
- && !defined(__ia64__)
+ && !defined(__ia64__) && !defined(__UCLIBC__)
# ifndef GC_HAVE_BUILTIN_BACKTRACE
# define GC_HAVE_BUILTIN_BACKTRACE
# endif

View File

@ -1,19 +0,0 @@
Original patch from: ../4.3.2/280-c99-complex-ugly-hack.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_303-c99-complex-ugly-hack.patch
-= END original header =-
diff -durN gcc-4.3.3.orig/libstdc++-v3/configure gcc-4.3.3/libstdc++-v3/configure
--- gcc-4.3.3.orig/libstdc++-v3/configure 2008-07-07 21:49:54.000000000 +0200
+++ gcc-4.3.3/libstdc++-v3/configure 2009-01-27 22:25:39.000000000 +0100
@@ -38935,6 +38935,9 @@
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <complex.h>
+#ifdef __UCLIBC__
+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
+#endif
int
main ()
{

View File

@ -1,32 +0,0 @@
Original patch from: ../4.3.2/290-index_macro.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_304-index_macro.patch
-= END original header =-
diff -durN gcc-4.3.3.orig/libstdc++-v3/include/ext/rope gcc-4.3.3/libstdc++-v3/include/ext/rope
--- gcc-4.3.3.orig/libstdc++-v3/include/ext/rope 2008-07-15 12:14:51.000000000 +0200
+++ gcc-4.3.3/libstdc++-v3/include/ext/rope 2009-01-27 22:25:41.000000000 +0100
@@ -59,6 +59,9 @@
#include <bits/gthr.h>
#include <tr1/functional>
+/* cope w/ index defined as macro, SuSv3 proposal */
+#undef index
+
# ifdef __GC
# define __GC_CONST const
# else
diff -durN gcc-4.3.3.orig/libstdc++-v3/include/ext/ropeimpl.h gcc-4.3.3/libstdc++-v3/include/ext/ropeimpl.h
--- gcc-4.3.3.orig/libstdc++-v3/include/ext/ropeimpl.h 2007-05-04 17:06:46.000000000 +0200
+++ gcc-4.3.3/libstdc++-v3/include/ext/ropeimpl.h 2009-01-27 22:25:41.000000000 +0100
@@ -54,6 +54,9 @@
#include <ext/memory> // For uninitialized_copy_n
#include <ext/numeric> // For power
+/* cope w/ index defined as macro, SuSv3 proposal */
+#undef index
+
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
using std::size_t;

View File

@ -1,54 +0,0 @@
Original patch from: ../4.3.2/300-libmudflap-susv3-legacy.patch
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_305-libmudflap-susv3-legacy.patch
-= END original header =-
diff -durN gcc-4.3.3.orig/libmudflap/mf-hooks2.c gcc-4.3.3/libmudflap/mf-hooks2.c
--- gcc-4.3.3.orig/libmudflap/mf-hooks2.c 2005-09-23 23:58:39.000000000 +0200
+++ gcc-4.3.3/libmudflap/mf-hooks2.c 2009-01-27 22:25:45.000000000 +0100
@@ -427,7 +427,7 @@
{
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
- bzero (s, n);
+ memset (s, 0, n);
}
@@ -437,7 +437,7 @@
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
- bcopy (src, dest, n);
+ memmove (dest, src, n);
}
@@ -447,7 +447,7 @@
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
- return bcmp (s1, s2, n);
+ return memcmp (s1, s2, n);
}
@@ -456,7 +456,7 @@
size_t n = strlen (s);
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
- return index (s, c);
+ return strchr (s, c);
}
@@ -465,7 +465,7 @@
size_t n = strlen (s);
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
- return rindex (s, c);
+ return strrchr (s, c);
}
/* XXX: stpcpy, memccpy */

View File

@ -1,34 +0,0 @@
Original patch from: ../4.3.2/310-arm-softfloat.patch
-= BEGIN original header =-
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/arm/linux-elf.h gcc-4.3.3/gcc/config/arm/linux-elf.h
--- gcc-4.3.3.orig/gcc/config/arm/linux-elf.h 2007-11-08 14:44:09.000000000 +0100
+++ gcc-4.3.3/gcc/config/arm/linux-elf.h 2009-01-27 22:25:47.000000000 +0100
@@ -60,7 +60,7 @@
%{shared:-lc} \
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
+#define LIBGCC_SPEC "-lgcc"
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
diff -durN gcc-4.3.3.orig/gcc/config/arm/t-linux gcc-4.3.3/gcc/config/arm/t-linux
--- gcc-4.3.3.orig/gcc/config/arm/t-linux 2006-11-09 23:14:27.000000000 +0100
+++ gcc-4.3.3/gcc/config/arm/t-linux 2009-01-27 22:25:47.000000000 +0100
@@ -3,7 +3,12 @@
TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC
LIB1ASMSRC = arm/lib1funcs.asm
-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
+ _call_via_rX _interwork_call_via_rX \
+ _lshrdi3 _ashrdi3 _ashldi3 \
+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
+ _fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundidf _floatundisf
# MULTILIB_OPTIONS = mhard-float/msoft-float
# MULTILIB_DIRNAMES = hard-float soft-float

View File

@ -1,23 +0,0 @@
Original patch from: ../4.3.2/320-alpha-signal_h.patch
-= BEGIN original header =-
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/alpha/linux-unwind.h gcc-4.3.3/gcc/config/alpha/linux-unwind.h
--- gcc-4.3.3.orig/gcc/config/alpha/linux-unwind.h 2006-10-26 21:31:09.000000000 +0200
+++ gcc-4.3.3/gcc/config/alpha/linux-unwind.h 2009-01-27 22:25:49.000000000 +0100
@@ -29,6 +29,9 @@
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
+/* Don't use this if inhibit_libc is set
+ The build for this target will fail trying to include missing headers */
+#ifndef inhibit_libc
#include <signal.h>
#include <sys/ucontext.h>
@@ -80,3 +83,4 @@
fs->retaddr_column = 64;
return _URC_NO_REASON;
}
+#endif /* inhibit_libc */

View File

@ -1,30 +0,0 @@
Original patch from: ../4.3.2/330-unwind-for-uClibc.patch
-= BEGIN original header =-
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/t-linux-uclibc gcc-4.3.3/gcc/config/t-linux-uclibc
--- gcc-4.3.3.orig/gcc/config/t-linux-uclibc 1970-01-01 01:00:00.000000000 +0100
+++ gcc-4.3.3/gcc/config/t-linux-uclibc 2009-01-27 22:28:53.000000000 +0100
@@ -0,0 +1,5 @@
+# Remove glibc specific files added in t-linux
+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
+
+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
diff -durN gcc-4.3.3.orig/gcc/config.gcc gcc-4.3.3/gcc/config.gcc
--- gcc-4.3.3.orig/gcc/config.gcc 2009-01-27 22:25:37.000000000 +0100
+++ gcc-4.3.3/gcc/config.gcc 2009-01-27 22:28:53.000000000 +0100
@@ -2648,6 +2648,12 @@
;;
esac
+# Rather than hook into each target, just do it after all the linux
+# targets have been processed
+case ${target} in
+ *-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc";;
+esac
+
case ${target} in
i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
tmake_file="${tmake_file} i386/t-gmm_malloc"

View File

@ -1,90 +0,0 @@
Original patch from: ../4.3.2/340-make-mno-spe-work-as-expected.patch
-= BEGIN original header =-
2008-04-03 Nathan Froyd <froydnj@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* config/rs6000/rs6000.opt (mspe): Remove Var property.
(misel): Likewise.
* config/rs6000/rs6000.h (rs6000_spe): Declare.
(rs6000_isel): Likewise.
* config/rs6000/rs6000.c (rs6000_spe): New variable.
(rs6000_isel): New variable.
(rs6000_handle_option): Handle OPT_mspe and OPT_misel.
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/rs6000/rs6000.c gcc-4.3.3/gcc/config/rs6000/rs6000.c
--- gcc-4.3.3.orig/gcc/config/rs6000/rs6000.c 2008-11-18 23:07:58.000000000 +0100
+++ gcc-4.3.3/gcc/config/rs6000/rs6000.c 2009-01-27 22:28:55.000000000 +0100
@@ -174,9 +174,15 @@
/* Nonzero to use AltiVec ABI. */
int rs6000_altivec_abi;
+/* Nonzero if we want SPE SIMD instructions. */
+int rs6000_spe;
+
/* Nonzero if we want SPE ABI extensions. */
int rs6000_spe_abi;
+/* Nonzero to use isel instructions. */
+int rs6000_isel;
+
/* Nonzero if floating point operations are done in the GPRs. */
int rs6000_float_gprs = 0;
@@ -2144,11 +2150,21 @@
rs6000_parse_yes_no_option ("vrsave", arg, &(TARGET_ALTIVEC_VRSAVE));
break;
+ case OPT_misel:
+ rs6000_explicit_options.isel = true;
+ rs6000_isel = value;
+ break;
+
case OPT_misel_:
rs6000_explicit_options.isel = true;
rs6000_parse_yes_no_option ("isel", arg, &(rs6000_isel));
break;
+ case OPT_mspe:
+ rs6000_explicit_options.spe = true;
+ rs6000_spe = value;
+ break;
+
case OPT_mspe_:
rs6000_explicit_options.spe = true;
rs6000_parse_yes_no_option ("spe", arg, &(rs6000_spe));
diff -durN gcc-4.3.3.orig/gcc/config/rs6000/rs6000.h gcc-4.3.3/gcc/config/rs6000/rs6000.h
--- gcc-4.3.3.orig/gcc/config/rs6000/rs6000.h 2008-01-26 18:18:35.000000000 +0100
+++ gcc-4.3.3/gcc/config/rs6000/rs6000.h 2009-01-27 22:28:55.000000000 +0100
@@ -349,6 +349,8 @@
extern int rs6000_ieeequad;
extern int rs6000_altivec_abi;
extern int rs6000_spe_abi;
+extern int rs6000_spe;
+extern int rs6000_isel;
extern int rs6000_float_gprs;
extern int rs6000_alignment_flags;
extern const char *rs6000_sched_insert_nops_str;
diff -durN gcc-4.3.3.orig/gcc/config/rs6000/rs6000.opt gcc-4.3.3/gcc/config/rs6000/rs6000.opt
--- gcc-4.3.3.orig/gcc/config/rs6000/rs6000.opt 2007-10-31 08:56:01.000000000 +0100
+++ gcc-4.3.3/gcc/config/rs6000/rs6000.opt 2009-01-27 22:28:55.000000000 +0100
@@ -190,7 +190,7 @@
-mvrsave=yes/no Deprecated option. Use -mvrsave/-mno-vrsave instead
misel
-Target Var(rs6000_isel)
+Target
Generate isel instructions
misel=
@@ -198,7 +198,7 @@
-misel=yes/no Deprecated option. Use -misel/-mno-isel instead
mspe
-Target Var(rs6000_spe)
+Target
Generate SPE SIMD instructions on E500
mpaired

View File

@ -1,29 +0,0 @@
Original patch from: ../4.3.2/350-sh-without-headers.patch
-= BEGIN original header =-
On 20081011, Khem RAJ writes:
You have to bar gcc trying to build unwinding at stage 1. Try the
attached patch and see if it helps.
gcc/config/sh/linux-unwind.h | 3 +++
1 file changed, 3 insertions(+)
-= END original header =-
diff -durN gcc-4.3.3.orig/gcc/config/sh/linux-unwind.h gcc-4.3.3/gcc/config/sh/linux-unwind.h
--- gcc-4.3.3.orig/gcc/config/sh/linux-unwind.h 2007-09-12 08:59:06.000000000 +0200
+++ gcc-4.3.3/gcc/config/sh/linux-unwind.h 2009-01-27 22:28:57.000000000 +0100
@@ -26,6 +26,8 @@
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
+#ifndef inhibit_libc
+
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
@@ -251,3 +253,4 @@
return _URC_NO_REASON;
}
#endif /* defined (__SH5__) */
+#endif /* ifndef inhibit_libc */

View File

@ -1,86 +0,0 @@
gcc svn 142778:
PR target/37436
* arm.c (arm_legitimate_index): Only accept addresses that are in
canonical form.
* predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
* arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
for operand1.
(extendqisi2): Likewise.
(arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
predicate for operand1.
diff -Nura gcc-4.3.3.orig/gcc/config/arm/arm.c gcc-4.3.3/gcc/config/arm/arm.c
--- gcc-4.3.3.orig/gcc/config/arm/arm.c 2008-06-11 07:52:55.000000000 -0300
+++ gcc-4.3.3/gcc/config/arm/arm.c 2009-05-21 16:06:45.000000000 -0300
@@ -3769,6 +3769,7 @@
rtx xop1 = XEXP (x, 1);
return ((arm_address_register_rtx_p (xop0, strict_p)
+ && GET_CODE(xop1) == CONST_INT
&& arm_legitimate_index_p (mode, xop1, outer, strict_p))
|| (arm_address_register_rtx_p (xop1, strict_p)
&& arm_legitimate_index_p (mode, xop0, outer, strict_p)));
diff -Nura gcc-4.3.3.orig/gcc/config/arm/arm.md gcc-4.3.3/gcc/config/arm/arm.md
--- gcc-4.3.3.orig/gcc/config/arm/arm.md 2007-09-04 01:44:47.000000000 -0300
+++ gcc-4.3.3/gcc/config/arm/arm.md 2009-05-21 16:06:45.000000000 -0300
@@ -4199,7 +4199,7 @@
(define_expand "extendqihi2"
[(set (match_dup 2)
- (ashift:SI (match_operand:QI 1 "general_operand" "")
+ (ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "")
(const_int 24)))
(set (match_operand:HI 0 "s_register_operand" "")
(ashiftrt:SI (match_dup 2)
@@ -4224,7 +4224,7 @@
(define_insn "*arm_extendqihi_insn"
[(set (match_operand:HI 0 "s_register_operand" "=r")
- (sign_extend:HI (match_operand:QI 1 "memory_operand" "Uq")))]
+ (sign_extend:HI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))]
"TARGET_ARM && arm_arch4"
"ldr%(sb%)\\t%0, %1"
[(set_attr "type" "load_byte")
@@ -4235,7 +4235,7 @@
(define_expand "extendqisi2"
[(set (match_dup 2)
- (ashift:SI (match_operand:QI 1 "general_operand" "")
+ (ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "")
(const_int 24)))
(set (match_operand:SI 0 "s_register_operand" "")
(ashiftrt:SI (match_dup 2)
@@ -4267,7 +4267,7 @@
(define_insn "*arm_extendqisi"
[(set (match_operand:SI 0 "s_register_operand" "=r")
- (sign_extend:SI (match_operand:QI 1 "memory_operand" "Uq")))]
+ (sign_extend:SI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))]
"TARGET_ARM && arm_arch4 && !arm_arch6"
"ldr%(sb%)\\t%0, %1"
[(set_attr "type" "load_byte")
@@ -4278,7 +4278,8 @@
(define_insn "*arm_extendqisi_v6"
[(set (match_operand:SI 0 "s_register_operand" "=r,r")
- (sign_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,Uq")))]
+ (sign_extend:SI
+ (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "r,Uq")))]
"TARGET_ARM && arm_arch6"
"@
sxtb%?\\t%0, %1
diff -Nura gcc-4.3.3.orig/gcc/config/arm/predicates.md gcc-4.3.3/gcc/config/arm/predicates.md
--- gcc-4.3.3.orig/gcc/config/arm/predicates.md 2007-08-02 07:49:31.000000000 -0300
+++ gcc-4.3.3/gcc/config/arm/predicates.md 2009-05-21 16:06:45.000000000 -0300
@@ -234,6 +234,10 @@
(match_test "arm_legitimate_address_p (mode, XEXP (op, 0), SIGN_EXTEND,
0)")))
+(define_special_predicate "arm_reg_or_extendqisi_mem_op"
+ (ior (match_operand 0 "arm_extendqisi_mem_op")
+ (match_operand 0 "s_register_operand")))
+
(define_predicate "power_of_two_operand"
(match_code "const_int")
{

View File

@ -1,11 +0,0 @@
--- gcc-4.3.2.orig/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:44.000000000 +0200
+++ gcc-4.3.2/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:51.000000000 +0200
@@ -44,7 +44,7 @@
The ARM10TDMI core is the default for armv5t, so set
SUBTARGET_CPU_DEFAULT to achieve this. */
#undef SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
/* TARGET_BIG_ENDIAN_DEFAULT is set in
config.gcc for big endian configurations. */

View File

@ -1,13 +0,0 @@
diff -ur gcc-4.3.4-orig/libjava/Makefile.in gcc-4.3.4/libjava/Makefile.in
--- gcc-4.3.4-orig/libjava/Makefile.in 2009-08-04 04:12:27.000000000 -0700
+++ gcc-4.3.4/libjava/Makefile.in 2009-09-23 22:03:15.750951483 -0700
@@ -8874,6 +8874,9 @@
ecjx$(EXEEXT): $(ecjx_OBJECTS) $(ecjx_DEPENDENCIES)
@rm -f ecjx$(EXEEXT)
$(ecjx_LINK) $(ecjx_LDFLAGS) $(ecjx_OBJECTS) $(ecjx_LDADD) $(LIBS)
+ecjx.$(OBJEXT): $(ecjx_SOURCES)
+ @rm -f ecjx.$(OBJEXT)
+ $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c -o $@ $<
gappletviewer$(EXEEXT): $(gappletviewer_OBJECTS) $(gappletviewer_DEPENDENCIES)
@rm -f gappletviewer$(EXEEXT)
$(gappletviewer_LINK) $(gappletviewer_LDFLAGS) $(gappletviewer_OBJECTS) $(gappletviewer_LDADD) $(LIBS)

View File

@ -1,11 +0,0 @@
--- gcc-4.3.4/libffi/src/arm/sysv.S
+++ gcc-4.3.4/libffi/src/arm/sysv.S
@@ -235,7 +235,7 @@ ARM_FUNC_START ffi_closure_SYSV
stmfd sp!, {ip, lr}
UNWIND .save {r0, lr}
add r2, sp, #8
- .pad #16
+ UNWIND .pad #16
sub sp, sp, #16
str sp, [sp, #8]
add r1, sp, #8

View File

@ -1,39 +0,0 @@
Highly inspired by:
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
diff -durN gcc-4.3.2.orig//libgcc/Makefile.in gcc-4.3.2/libgcc/Makefile.in
--- gcc-4.3.2.orig//libgcc/Makefile.in 2008-06-17 11:32:34.000000000 +0200
+++ gcc-4.3.2/libgcc/Makefile.in 2011-09-02 12:27:39.296538955 +0200
@@ -705,8 +705,9 @@
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
endif
+all: libgcc_eh.a
ifeq ($(enable_shared),yes)
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
+all: libgcc_s$(SHLIB_EXT)
ifneq ($(LIBUNWIND),)
all: libunwind$(SHLIB_EXT)
endif
@@ -875,10 +876,6 @@
install-shared:
$(mkinstalldirs) $(DESTDIR)$(inst_libdir)
- $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
- chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
- $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
-
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
@shlib_base_name@,libgcc_s,$(subst \
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
@@ -893,6 +890,10 @@
chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a
+ $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+
parts="$(INSTALL_PARTS)"; \
for file in $$parts; do \
rm -f $(DESTDIR)$(inst_libdir)/$$file; \

View File

@ -1,24 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/config/alpha/alpha.h gcc-4.4.5/gcc/config/alpha/alpha.h
--- gcc-4.4.5.orig/gcc/config/alpha/alpha.h 2009-02-20 16:20:38.000000000 +0100
+++ gcc-4.4.5/gcc/config/alpha/alpha.h 2010-10-09 22:57:31.000000000 +0200
@@ -95,6 +95,8 @@
while (0)
#endif
+#define CPP_SPEC "%{!no-ieee:-mieee}"
+
#define WORD_SWITCH_TAKES_ARG(STR) \
(!strcmp (STR, "rpath") || DEFAULT_WORD_SWITCH_TAKES_ARG(STR))
diff -durN gcc-4.4.5.orig/gcc/config/alpha/alpha.opt gcc-4.4.5/gcc/config/alpha/alpha.opt
--- gcc-4.4.5.orig/gcc/config/alpha/alpha.opt 2007-08-02 12:49:31.000000000 +0200
+++ gcc-4.4.5/gcc/config/alpha/alpha.opt 2010-10-09 22:57:31.000000000 +0200
@@ -39,7 +39,7 @@
Request IEEE-conformant math library routines (OSF/1)
mieee
-Target Report RejectNegative Mask(IEEE)
+Target Report Mask(IEEE)
Emit IEEE-conformant code, without inexact exceptions
mieee-with-inexact

View File

@ -1,27 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/builtins.c gcc-4.4.5/gcc/builtins.c
--- gcc-4.4.5.orig/gcc/builtins.c 2010-03-22 16:00:20.000000000 +0100
+++ gcc-4.4.5/gcc/builtins.c 2010-10-09 22:57:58.000000000 +0200
@@ -5783,6 +5783,9 @@
trampolines_created = 1;
INITIALIZE_TRAMPOLINE (r_tramp, r_func, r_chain);
+ if (warn_trampolines)
+ warning (OPT_Wtrampolines, "generating trampoline in object (requires executable stack)");
+
return const0_rtx;
}
diff -durN gcc-4.4.5.orig/gcc/common.opt gcc-4.4.5/gcc/common.opt
--- gcc-4.4.5.orig/gcc/common.opt 2009-03-28 18:28:45.000000000 +0100
+++ gcc-4.4.5/gcc/common.opt 2010-10-09 22:57:58.000000000 +0200
@@ -197,6 +197,10 @@
Common Var(warn_type_limits) Init(-1) Warning
Warn if a comparison is always true or always false due to the limited range of the data type
+Wtrampolines
+Common Var(warn_trampolines) Init(1)
+Warn whenever a trampoline is generated
+
Wuninitialized
Common Var(warn_uninitialized) Warning
Warn about uninitialized automatic variables

View File

@ -1,46 +0,0 @@
diff -durN gcc-4.4.5.orig/libjava/configure gcc-4.4.5/libjava/configure
--- gcc-4.4.5.orig/libjava/configure 2010-10-01 10:26:18.000000000 +0200
+++ gcc-4.4.5/libjava/configure 2010-10-09 22:58:04.000000000 +0200
@@ -1022,6 +1022,8 @@
default=yes
--enable-java-maintainer-mode
allow rebuilding of .class and .h files
+ --enable-libjava-multilib
+ build libjava as multilib
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-maintainer-mode enable make rules and dependencies not useful
@@ -1974,6 +1976,16 @@
fi
+# Check whether --enable-libjava-multilib was given.
+if test "${enable_libjava_multilib+set}" = set; then
+ enableval=$enable_libjava_multilib;
+fi
+
+if test "$enable_libjava_multilib" = no; then
+ multilib=no
+ ac_configure_args="$ac_configure_args --disable-multilib"
+fi
+
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
diff -durN gcc-4.4.5.orig/libjava/configure.ac gcc-4.4.5/libjava/configure.ac
--- gcc-4.4.5.orig/libjava/configure.ac 2010-06-11 13:49:16.000000000 +0200
+++ gcc-4.4.5/libjava/configure.ac 2010-10-09 22:58:04.000000000 +0200
@@ -139,6 +139,13 @@
[allow rebuilding of .class and .h files]))
AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
+AC_ARG_ENABLE(libjava-multilib,
+ AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
+if test "$enable_libjava_multilib" = no; then
+ multilib=no
+ ac_configure_args="$ac_configure_args --disable-multilib"
+fi
+
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
GCC_NO_EXECUTABLES

View File

@ -1,39 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/configure gcc-4.4.5/gcc/configure
--- gcc-4.4.5.orig/gcc/configure 2010-06-20 17:43:53.000000000 +0200
+++ gcc-4.4.5/gcc/configure 2010-10-09 22:58:36.000000000 +0200
@@ -13997,7 +13997,7 @@
| powerpc*-*-*,powerpc64*-*-*)
CROSS="$CROSS -DNATIVE_CROSS" ;;
esac
-elif test "x$TARGET_SYSTEM_ROOT" != x; then
+elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
SYSTEM_HEADER_DIR=$build_system_header_dir
fi
diff -durN gcc-4.4.5.orig/gcc/configure.ac gcc-4.4.5/gcc/configure.ac
--- gcc-4.4.5.orig/gcc/configure.ac 2010-06-20 17:43:53.000000000 +0200
+++ gcc-4.4.5/gcc/configure.ac 2010-10-09 22:58:36.000000000 +0200
@@ -1720,7 +1720,7 @@
| powerpc*-*-*,powerpc64*-*-*)
CROSS="$CROSS -DNATIVE_CROSS" ;;
esac
-elif test "x$TARGET_SYSTEM_ROOT" != x; then
+elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
SYSTEM_HEADER_DIR=$build_system_header_dir
fi
diff -durN gcc-4.4.5.orig/gcc/unwind-dw2.c gcc-4.4.5/gcc/unwind-dw2.c
--- gcc-4.4.5.orig/gcc/unwind-dw2.c 2010-01-20 09:39:18.000000000 +0100
+++ gcc-4.4.5/gcc/unwind-dw2.c 2010-10-09 22:58:36.000000000 +0200
@@ -329,9 +329,11 @@
}
#endif
+#ifndef inhibit_libc
#ifdef MD_UNWIND_SUPPORT
#include MD_UNWIND_SUPPORT
#endif
+#endif
/* Extract any interesting information from the CIE for the translation
unit F belongs to. Return a pointer to the byte after the augmentation,

View File

@ -1,49 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/c-common.c gcc-4.4.5/gcc/c-common.c
--- gcc-4.4.5.orig/gcc/c-common.c 2010-07-27 15:07:28.000000000 +0200
+++ gcc-4.4.5/gcc/c-common.c 2010-10-09 22:59:03.000000000 +0200
@@ -301,7 +301,7 @@
/* Warn about format/argument anomalies in calls to formatted I/O functions
(*printf, *scanf, strftime, strfmon, etc.). */
-int warn_format;
+int warn_format = 1;
/* Warn about using __null (as NULL in C++) as sentinel. For code compiled
with GCC this doesn't matter as __null is guaranteed to have the right
diff -durN gcc-4.4.5.orig/gcc/c.opt gcc-4.4.5/gcc/c.opt
--- gcc-4.4.5.orig/gcc/c.opt 2009-09-18 23:53:23.000000000 +0200
+++ gcc-4.4.5/gcc/c.opt 2010-10-09 22:59:03.000000000 +0200
@@ -236,7 +236,7 @@
Warn about format strings that contain NUL bytes
Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning
Warn about possible security problems with format functions
Wformat-y2k
diff -durN gcc-4.4.5.orig/gcc/doc/invoke.texi gcc-4.4.5/gcc/doc/invoke.texi
--- gcc-4.4.5.orig/gcc/doc/invoke.texi 2010-09-08 20:13:03.000000000 +0200
+++ gcc-4.4.5/gcc/doc/invoke.texi 2010-10-09 22:59:03.000000000 +0200
@@ -2888,6 +2888,9 @@
@option{-Wformat-nonliteral}, @option{-Wformat-security}, and
@option{-Wformat=2} are available, but are not included in @option{-Wall}.
+NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
+To disable, use @option{-Wformat=0}.
+
@item -Wformat-y2k
@opindex Wformat-y2k
@opindex Wno-format-y2k
@@ -2941,6 +2944,11 @@
in future warnings may be added to @option{-Wformat-security} that are not
included in @option{-Wformat-nonliteral}.)
+NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
+To disable, use @option{-Wno-format-security}, or disable all format warnings
+with @option{-Wformat=0}. To make format security warnings fatal, specify
+@option{-Werror=format-security}.
+
@item -Wformat=2
@opindex Wformat=2
@opindex Wno-format=2

View File

@ -1,26 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/doc/invoke.texi gcc-4.4.5/gcc/doc/invoke.texi
--- gcc-4.4.5.orig/gcc/doc/invoke.texi 2010-10-09 22:59:03.000000000 +0200
+++ gcc-4.4.5/gcc/doc/invoke.texi 2010-10-09 22:59:33.000000000 +0200
@@ -5432,6 +5432,11 @@
Please note the warning under @option{-fgcse} about
invoking @option{-O2} on programs that use computed gotos.
+NOTE: In Gentoo, @option{-D_FORTIFY_SOURCE=2} is set by default, and is
+activated when @option{-O} is set to 2 or higher. This enables additional
+compile-time and run-time checks for several libc functions. To disable,
+specify either @option{-U_FORTIFY_SOURCE} or @option{-D_FORTIFY_SOURCE=0}.
+
@item -O3
@opindex O3
Optimize yet more. @option{-O3} turns on all optimizations specified
diff -durN gcc-4.4.5.orig/gcc/gcc.c gcc-4.4.5/gcc/gcc.c
--- gcc-4.4.5.orig/gcc/gcc.c 2010-01-09 01:05:06.000000000 +0100
+++ gcc-4.4.5/gcc/gcc.c 2010-10-09 22:59:33.000000000 +0200
@@ -807,6 +807,7 @@
%{H} %C %{D*&U*&A*} %{i*} %Z %i\
%{fmudflap:-D_MUDFLAP -include mf-runtime.h}\
%{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h}\
+ %{!D_FORTIFY_SOURCE:%{!D_FORTIFY_SOURCE=*:%{!U_FORTIFY_SOURCE:-D_FORTIFY_SOURCE=2}}}\
%{E|M|MM:%W{o*}}";
/* This contains cpp options which are common with cc1_options and are passed

View File

@ -1,11 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/config/netbsd-elf.h gcc-4.4.5/gcc/config/netbsd-elf.h
--- gcc-4.4.5.orig/gcc/config/netbsd-elf.h 2007-09-03 18:14:04.000000000 +0200
+++ gcc-4.4.5/gcc/config/netbsd-elf.h 2010-10-09 22:59:57.000000000 +0200
@@ -82,6 +82,7 @@
#define NETBSD_LINK_SPEC_ELF \
"%{assert*} %{R*} %{rpath*} \
%{shared:-shared} \
+ %{symbolic:-Bsymbolic} \
%{!shared: \
-dc -dp \
%{!nostdlib: \

View File

@ -1,29 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/config/sparc/freebsd.h gcc-4.4.5/gcc/config/sparc/freebsd.h
--- gcc-4.4.5.orig/gcc/config/sparc/freebsd.h 2007-08-02 12:49:31.000000000 +0200
+++ gcc-4.4.5/gcc/config/sparc/freebsd.h 2010-10-09 23:00:03.000000000 +0200
@@ -25,9 +25,22 @@
/* FreeBSD needs the platform name (sparc64) defined.
Emacs needs to know if the arch is 64 or 32-bits. */
-#undef CPP_CPU64_DEFAULT_SPEC
-#define CPP_CPU64_DEFAULT_SPEC \
- "-D__sparc64__ -D__sparc_v9__ -D__sparcv9 -D__arch64__"
+#undef FBSD_TARGET_CPU_CPP_BUILTINS
+#define FBSD_TARGET_CPU_CPP_BUILTINS() \
+ do \
+ { \
+ if (TARGET_ARCH64) \
+ { \
+ builtin_define ("__sparc64__"); \
+ builtin_define ("__sparc_v9__"); \
+ builtin_define ("__sparcv9"); \
+ } \
+ else \
+ builtin_define ("__sparc"); \
+ builtin_define ("__sparc__"); \
+ } \
+ while (0)
+
#define LINK_SPEC "%(link_arch) \
%{!mno-relax:%{!r:-relax}} \

View File

@ -1,12 +0,0 @@
diff -durN gcc-4.4.5.orig/libgomp/configure gcc-4.4.5/libgomp/configure
--- gcc-4.4.5.orig/libgomp/configure 2010-10-01 10:26:18.000000000 +0200
+++ gcc-4.4.5/libgomp/configure 2010-10-09 23:00:33.000000000 +0200
@@ -3334,7 +3334,7 @@
# Add -Wall -Werror if we are using GCC.
if test "x$GCC" = "xyes"; then
- XCFLAGS="$XCFLAGS -Wall -Werror"
+ XCFLAGS="$XCFLAGS -Wall"
fi
# Find other programs we need.

View File

@ -1,24 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/stmt.c gcc-4.4.5/gcc/stmt.c
--- gcc-4.4.5.orig/gcc/stmt.c 2010-03-08 12:46:28.000000000 +0100
+++ gcc-4.4.5/gcc/stmt.c 2010-10-09 23:01:01.000000000 +0200
@@ -2377,7 +2377,11 @@
use_cost_table
= (TREE_CODE (orig_type) != ENUMERAL_TYPE
&& estimate_case_costs (case_list));
- balance_case_nodes (&case_list, NULL);
+ /* When optimizing for size, we want a straight list to avoid
+ jumps as much as possible. This basically creates an if-else
+ chain. */
+ if (!optimize_size)
+ balance_case_nodes (&case_list, NULL);
emit_case_nodes (index, case_list, default_label, index_type);
if (default_label)
emit_jump (default_label);
@@ -2943,6 +2947,7 @@
{
if (!node_has_low_bound (node, index_type))
{
+ if (!optimize_size) /* don't jl to the .default_label. */
emit_cmp_and_jump_insns (index,
convert_modes
(mode, imode,

View File

@ -1,15 +0,0 @@
diff -durN gcc-4.4.5.orig/include/libiberty.h gcc-4.4.5/include/libiberty.h
--- gcc-4.4.5.orig/include/libiberty.h 2008-06-24 03:42:31.000000000 +0200
+++ gcc-4.4.5/include/libiberty.h 2010-10-09 23:01:30.000000000 +0200
@@ -595,8 +595,11 @@
/* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller. */
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */
+#ifndef asprintf
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
#endif
+#endif
#if !HAVE_DECL_VASPRINTF
/* Like vsprintf but provides a pointer to malloc'd storage, which

View File

@ -1,12 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/config/arm/linux-eabi.h gcc-4.4.5/gcc/config/arm/linux-eabi.h
--- gcc-4.4.5.orig/gcc/config/arm/linux-eabi.h 2007-11-08 14:44:09.000000000 +0100
+++ gcc-4.4.5/gcc/config/arm/linux-eabi.h 2010-10-09 23:01:59.000000000 +0200
@@ -44,7 +44,7 @@
The ARM10TDMI core is the default for armv5t, so set
SUBTARGET_CPU_DEFAULT to achieve this. */
#undef SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
/* TARGET_BIG_ENDIAN_DEFAULT is set in
config.gcc for big endian configurations. */

View File

@ -1,11 +0,0 @@
diff -durN gcc-4.4.5.orig/libiberty/Makefile.in gcc-4.4.5/libiberty/Makefile.in
--- gcc-4.4.5.orig/libiberty/Makefile.in 2008-10-22 15:30:19.000000000 +0200
+++ gcc-4.4.5/libiberty/Makefile.in 2010-10-09 23:02:28.000000000 +0200
@@ -227,6 +227,7 @@
$(AR) $(AR_FLAGS) $(TARGETLIB) \
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
$(RANLIB) $(TARGETLIB); \
+ cp $(TARGETLIB) ../ ; \
cd ..; \
else true; fi

View File

@ -1,12 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/config.gcc gcc-4.4.5/gcc/config.gcc
--- gcc-4.4.5.orig/gcc/config.gcc 2010-06-14 00:16:50.000000000 +0200
+++ gcc-4.4.5/gcc/config.gcc 2010-10-09 23:02:56.000000000 +0200
@@ -2140,7 +2140,7 @@
if test x${sh_multilibs} = x ; then
case ${target} in
sh64-superh-linux* | \
- sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
+ sh[1234]*) sh_multilibs=`cd ${srcdir}/config/sh ; echo t-mlib-sh[1-4]* | sed 's:t-mlib-sh:,m:g;s: ::g'` ;;
sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
sh*-*-linux*) sh_multilibs=m1,m3e,m4 ;;

View File

@ -1,53 +0,0 @@
diff -durN gcc-4.4.5.orig/libstdc++-v3/src/Makefile.am gcc-4.4.5/libstdc++-v3/src/Makefile.am
--- gcc-4.4.5.orig/libstdc++-v3/src/Makefile.am 2009-08-26 21:04:11.000000000 +0200
+++ gcc-4.4.5/libstdc++-v3/src/Makefile.am 2010-10-09 23:03:26.000000000 +0200
@@ -356,6 +356,13 @@
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
+install-exec-local:
+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
+ if [ x"$$pic_objs" != x ]; then \
+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
+ fi
+
# Added bits to build debug library.
if GLIBCXX_BUILD_DEBUG
all-local: build_debug
diff -durN gcc-4.4.5.orig/libstdc++-v3/src/Makefile.in gcc-4.4.5/libstdc++-v3/src/Makefile.in
--- gcc-4.4.5.orig/libstdc++-v3/src/Makefile.in 2009-08-26 21:04:11.000000000 +0200
+++ gcc-4.4.5/libstdc++-v3/src/Makefile.in 2010-10-09 23:03:26.000000000 +0200
@@ -726,7 +726,7 @@
install-data-am: install-data-local
-install-exec-am: install-toolexeclibLTLIBRARIES
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
install-info: install-info-am
@@ -765,7 +765,7 @@
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \
- uninstall-toolexeclibLTLIBRARIES
+ uninstall-toolexeclibLTLIBRARIES install-exec-local
# Symbol versioning for shared libraries.
@@ -947,6 +947,14 @@
install_debug:
(cd ${debugdir} && $(MAKE) \
toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
+
+install-exec-local:
+ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
+ if [ x"$$pic_objs" != x ]; then \
+ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
+ fi
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,79 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/config/ia64/crtbegin.asm gcc-4.4.5/gcc/config/ia64/crtbegin.asm
--- gcc-4.4.5.orig/gcc/config/ia64/crtbegin.asm 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/config/ia64/crtbegin.asm 2010-10-09 23:03:55.000000000 +0200
@@ -252,3 +252,7 @@
.weak __cxa_finalize
#endif
.weak _Jv_RegisterClasses
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.4.5.orig/gcc/config/ia64/crtend.asm gcc-4.4.5/gcc/config/ia64/crtend.asm
--- gcc-4.4.5.orig/gcc/config/ia64/crtend.asm 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/config/ia64/crtend.asm 2010-10-09 23:03:55.000000000 +0200
@@ -119,3 +119,7 @@
br.ret.sptk.many rp
.endp __do_global_ctors_aux
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.4.5.orig/gcc/config/ia64/crti.asm gcc-4.4.5/gcc/config/ia64/crti.asm
--- gcc-4.4.5.orig/gcc/config/ia64/crti.asm 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/config/ia64/crti.asm 2010-10-09 23:03:55.000000000 +0200
@@ -51,3 +51,7 @@
.body
# end of crti.asm
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.4.5.orig/gcc/config/ia64/crtn.asm gcc-4.4.5/gcc/config/ia64/crtn.asm
--- gcc-4.4.5.orig/gcc/config/ia64/crtn.asm 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/config/ia64/crtn.asm 2010-10-09 23:03:55.000000000 +0200
@@ -41,3 +41,7 @@
br.ret.sptk.many b0
# end of crtn.asm
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.4.5.orig/gcc/config/ia64/lib1funcs.asm gcc-4.4.5/gcc/config/ia64/lib1funcs.asm
--- gcc-4.4.5.orig/gcc/config/ia64/lib1funcs.asm 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/config/ia64/lib1funcs.asm 2010-10-09 23:03:55.000000000 +0200
@@ -793,3 +793,7 @@
.endp __floattitf
#endif
#endif
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
diff -durN gcc-4.4.5.orig/gcc/config/ia64/linux.h gcc-4.4.5/gcc/config/ia64/linux.h
--- gcc-4.4.5.orig/gcc/config/ia64/linux.h 2009-02-12 17:30:53.000000000 +0100
+++ gcc-4.4.5/gcc/config/ia64/linux.h 2010-10-09 23:03:55.000000000 +0200
@@ -5,6 +5,8 @@
#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+
/* This is for -profile to use -lc_p instead of -lc. */
#undef CC1_SPEC
#define CC1_SPEC "%{profile:-p} %{G*}"
diff -durN gcc-4.4.5.orig/gcc/config/rs6000/ppc-asm.h gcc-4.4.5/gcc/config/rs6000/ppc-asm.h
--- gcc-4.4.5.orig/gcc/config/rs6000/ppc-asm.h 2008-10-13 17:44:26.000000000 +0200
+++ gcc-4.4.5/gcc/config/rs6000/ppc-asm.h 2010-10-09 23:03:55.000000000 +0200
@@ -172,7 +172,7 @@
.size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
#endif
-#if defined __linux__ && !defined __powerpc64__
+#if defined __linux__
.section .note.GNU-stack
.previous
#endif

View File

@ -1,25 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/config/sh/lib1funcs.asm gcc-4.4.5/gcc/config/sh/lib1funcs.asm
--- gcc-4.4.5.orig/gcc/config/sh/lib1funcs.asm 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/config/sh/lib1funcs.asm 2010-10-09 23:04:22.000000000 +0200
@@ -30,6 +30,11 @@
!! recoded in assembly by Toshiyasu Morita
!! tm@netcom.com
+#if defined(__ELF__) && defined(__linux__)
+.section .note.GNU-stack,"",%progbits
+.previous
+#endif
+
/* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and
ELF local label prefixes by J"orn Rennecke
amylaar@cygnus.com */
diff -durN gcc-4.4.5.orig/gcc/config/sh/linux-atomic.asm gcc-4.4.5/gcc/config/sh/linux-atomic.asm
--- gcc-4.4.5.orig/gcc/config/sh/linux-atomic.asm 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/config/sh/linux-atomic.asm 2010-10-09 23:04:22.000000000 +0200
@@ -136,3 +136,6 @@
ATOMIC_FETCH_AND_COMBOP(nand,and,not,4,l,mov)
#endif /* ! __SH5__ */
+
+.section .note.GNU-stack,"",%progbits
+.previous

View File

@ -1,24 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/configure gcc-4.4.5/gcc/configure
--- gcc-4.4.5.orig/gcc/configure 2010-10-09 22:58:36.000000000 +0200
+++ gcc-4.4.5/gcc/configure 2010-10-09 23:04:50.000000000 +0200
@@ -22285,7 +22285,7 @@
tls_first_minor=14
tls_as_opt="-m64 -Aesame --fatal-warnings"
;;
- sh-*-* | sh[34]-*-*)
+ sh-*-* | sh[34]*-*-*)
conftest_s='
.section ".tdata","awT",@progbits
foo: .long 25
diff -durN gcc-4.4.5.orig/gcc/configure.ac gcc-4.4.5/gcc/configure.ac
--- gcc-4.4.5.orig/gcc/configure.ac 2010-10-09 22:58:36.000000000 +0200
+++ gcc-4.4.5/gcc/configure.ac 2010-10-09 23:04:50.000000000 +0200
@@ -2728,7 +2728,7 @@
tls_first_minor=14
tls_as_opt="-m64 -Aesame --fatal-warnings"
;;
- sh-*-* | sh[34]-*-*)
+ sh-*-* | sh[34]*-*-*)
conftest_s='
.section ".tdata","awT",@progbits
foo: .long 25

View File

@ -1,94 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/config/freebsd-spec.h gcc-4.4.5/gcc/config/freebsd-spec.h
--- gcc-4.4.5.orig/gcc/config/freebsd-spec.h 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/config/freebsd-spec.h 2010-10-09 23:09:53.000000000 +0200
@@ -61,6 +61,8 @@
builtin_assert ("system=unix"); \
builtin_assert ("system=bsd"); \
builtin_assert ("system=FreeBSD"); \
+ if(!(flag_iso && (c_dialect_cxx () ? cxx_dialect == cxx98 : !flag_isoc99))) \
+ builtin_define("_LONGLONG"); \
FBSD_TARGET_CPU_CPP_BUILTINS(); \
} \
while (0)
diff -durN gcc-4.4.5.orig/gcc/config/t-freebsd-eh gcc-4.4.5/gcc/config/t-freebsd-eh
--- gcc-4.4.5.orig/gcc/config/t-freebsd-eh 1970-01-01 01:00:00.000000000 +0100
+++ gcc-4.4.5/gcc/config/t-freebsd-eh 2010-10-09 23:09:53.000000000 +0200
@@ -0,0 +1,4 @@
+# Use unwind-dw2-fde-glibc
+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
+ $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
diff -durN gcc-4.4.5.orig/gcc/config.gcc gcc-4.4.5/gcc/config.gcc
--- gcc-4.4.5.orig/gcc/config.gcc 2010-10-09 23:02:56.000000000 +0200
+++ gcc-4.4.5/gcc/config.gcc 2010-10-09 23:09:53.000000000 +0200
@@ -456,7 +456,7 @@
# pleases around the provided core setting.
gas=yes
gnu_ld=yes
- extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
tmake_file="t-slibgcc-elf-ver t-freebsd"
@@ -1048,6 +1048,10 @@
;;
i[34567]86-*-freebsd*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
+ fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
+ if test ${fbsd_major} -ge 7; then
+ tmake_file="${tmake_file} t-freebsd-eh"
+ fi
;;
x86_64-*-freebsd*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
diff -durN gcc-4.4.5.orig/gcc/crtstuff.c gcc-4.4.5/gcc/crtstuff.c
--- gcc-4.4.5.orig/gcc/crtstuff.c 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/crtstuff.c 2010-10-09 23:09:53.000000000 +0200
@@ -85,13 +85,15 @@
&& !defined(OBJECT_FORMAT_FLAT) \
&& defined(HAVE_LD_EH_FRAME_HDR) \
&& !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
- && defined(__GLIBC__) && __GLIBC__ >= 2
+ && ((defined(__GLIBC__) && __GLIBC__ >= 2) \
+ || (defined(__FreeBSD_version) && __FreeBSD_version >= 700022))
#include <link.h>
/* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
But it doesn't use PT_GNU_EH_FRAME ELF segment currently. */
# if !defined(__UCLIBC__) \
- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
+ || (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
+ || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) \
+ || (__FreeBSD_version >= 700022)
# define USE_PT_GNU_EH_FRAME
# endif
#endif
diff -durN gcc-4.4.5.orig/gcc/unwind-dw2-fde-glibc.c gcc-4.4.5/gcc/unwind-dw2-fde-glibc.c
--- gcc-4.4.5.orig/gcc/unwind-dw2-fde-glibc.c 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/gcc/unwind-dw2-fde-glibc.c 2010-10-09 23:09:53.000000000 +0200
@@ -46,8 +46,9 @@
#include "gthr.h"
#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
+ && ((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
+ || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) \
+ || (__FreeBSD_version >= 700022 ))
#ifndef __RELOC_POINTER
# define __RELOC_POINTER(ptr, base) ((ptr) + (base))
@@ -63,6 +64,13 @@
#define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550)
#endif
+/* Support FreeBSD */
+#ifndef ElfW
+# ifdef __ElfN
+# define ElfW __ElfN
+# endif
+#endif
+
struct unw_eh_callback_data
{
_Unwind_Ptr pc;

View File

@ -1,64 +0,0 @@
diff -durN gcc-4.4.5.orig/gcc/config/freebsd-spec.h gcc-4.4.5/gcc/config/freebsd-spec.h
--- gcc-4.4.5.orig/gcc/config/freebsd-spec.h 2010-10-09 23:09:53.000000000 +0200
+++ gcc-4.4.5/gcc/config/freebsd-spec.h 2010-10-09 23:10:02.000000000 +0200
@@ -86,9 +86,10 @@
#define FBSD_STARTFILE_SPEC \
"%{!shared: \
%{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
- %{!p:%{profile:gcrt1.o%s} \
- %{!profile:crt1.o%s}}}} \
- crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+ %{!p:%{profile:gcrt1.o%s} \
+ %{!profile:crt1.o%s}}}} \
+ crti.o%s \
+ %{static:crtbeginT.o%s;shared:crtbeginS.o%s;:crtbegin.o%s}"
/* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on
the magical crtend.o file (see crtstuff.c) which provides part of
@@ -126,7 +127,8 @@
%{pg: -lc_p} \
}"
#else
-#if FBSD_MAJOR < 5
+#include <sys/param.h>
+#if __FreeBSD_version < 500016
#define FBSD_LIB_SPEC " \
%{!shared: \
%{!pg: \
@@ -136,17 +138,34 @@
%{!pthread:-lc_p} \
%{pthread:-lc_r_p}} \
}"
-#else
+#elif __FreeBSD_version < 700022
#define FBSD_LIB_SPEC " \
%{!shared: \
%{!pg: %{pthread:-lpthread} -lc} \
%{pg: %{pthread:-lpthread_p} -lc_p} \
}"
+#else
+#define FBSD_LIB_SPEC " \
+ %{!shared: \
+ %{!pg: %{pthread:-lpthread} -lc} \
+ %{pg: %{pthread:-lpthread_p} -lc_p}} \
+ %{shared: \
+ %{pthread:-lpthread} -lc} \
+ "
#endif
#endif
-#if FBSD_MAJOR < 6
+#if FBSD_MAJOR < 5
#define FBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.1"
#else
#define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
#endif
+
+#if defined(HAVE_LD_EH_FRAME_HDR)
+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
+#endif
+
+/* Use --as-needed -lgcc_s for eh support. */
+#ifdef HAVE_LD_AS_NEEDED
+#define USE_LD_AS_NEEDED 1
+#endif

View File

@ -1,35 +0,0 @@
diff -durN gcc-4.4.5.orig/contrib/regression/objs-gcc.sh gcc-4.4.5/contrib/regression/objs-gcc.sh
--- gcc-4.4.5.orig/contrib/regression/objs-gcc.sh 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/contrib/regression/objs-gcc.sh 2010-10-09 23:10:32.000000000 +0200
@@ -106,6 +106,10 @@
then
make all-gdb all-dejagnu all-ld || exit 1
make install-gdb install-dejagnu install-ld || exit 1
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
+ then
+ make all-gdb all-dejagnu all-ld || exit 1
+ make install-gdb install-dejagnu install-ld || exit 1
elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
make bootstrap || exit 1
make install || exit 1
diff -durN gcc-4.4.5.orig/libjava/classpath/ltconfig gcc-4.4.5/libjava/classpath/ltconfig
--- gcc-4.4.5.orig/libjava/classpath/ltconfig 2007-06-04 01:18:43.000000000 +0200
+++ gcc-4.4.5/libjava/classpath/ltconfig 2010-10-09 23:10:32.000000000 +0200
@@ -603,7 +603,7 @@
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
case $host_os in
-linux-gnu*) ;;
+linux-gnu*|linux-uclibc*) ;;
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
esac
@@ -1251,7 +1251,7 @@
;;
# This must be Linux ELF.
-linux-gnu*)
+linux*)
version_type=linux
need_lib_prefix=no
need_version=no

View File

@ -1,12 +0,0 @@
diff -durN gcc-4.4.5.orig/boehm-gc/include/gc.h gcc-4.4.5/boehm-gc/include/gc.h
--- gcc-4.4.5.orig/boehm-gc/include/gc.h 2007-04-23 23:10:09.000000000 +0200
+++ gcc-4.4.5/boehm-gc/include/gc.h 2010-10-09 23:11:00.000000000 +0200
@@ -503,7 +503,7 @@
#if defined(__linux__) || defined(__GLIBC__)
# include <features.h>
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
- && !defined(__ia64__)
+ && !defined(__ia64__) && !defined(__UCLIBC__)
# ifndef GC_HAVE_BUILTIN_BACKTRACE
# define GC_HAVE_BUILTIN_BACKTRACE
# endif

View File

@ -1,12 +0,0 @@
diff -durN gcc-4.4.5.orig/libstdc++-v3/include/c_global/cstdio gcc-4.4.5/libstdc++-v3/include/c_global/cstdio
--- gcc-4.4.5.orig/libstdc++-v3/include/c_global/cstdio 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/libstdc++-v3/include/c_global/cstdio 2010-10-09 23:11:27.000000000 +0200
@@ -139,7 +139,7 @@
_GLIBCXX_END_NAMESPACE
-#if _GLIBCXX_USE_C99
+#if _GLIBCXX_USE_C99 || defined __UCLIBC__
#undef snprintf
#undef vfscanf

View File

@ -1,48 +0,0 @@
diff -durN gcc-4.4.5.orig/libmudflap/mf-hooks2.c gcc-4.4.5/libmudflap/mf-hooks2.c
--- gcc-4.4.5.orig/libmudflap/mf-hooks2.c 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/libmudflap/mf-hooks2.c 2010-10-09 23:11:52.000000000 +0200
@@ -421,7 +421,7 @@
{
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
- bzero (s, n);
+ memset (s, 0, n);
}
@@ -431,7 +431,7 @@
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
- bcopy (src, dest, n);
+ memmove (dest, src, n);
}
@@ -441,7 +441,7 @@
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
- return bcmp (s1, s2, n);
+ return n == 0 ? 0 : memcmp (s1, s2, n);
}
@@ -450,7 +450,7 @@
size_t n = strlen (s);
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
- return index (s, c);
+ return strchr (s, c);
}
@@ -459,7 +459,7 @@
size_t n = strlen (s);
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
- return rindex (s, c);
+ return strrchr (s, c);
}
/* XXX: stpcpy, memccpy */

View File

@ -1,13 +0,0 @@
diff -durN gcc-4.4.5.orig/libjava/Makefile.in gcc-4.4.5/libjava/Makefile.in
--- gcc-4.4.5.orig/libjava/Makefile.in 2010-10-01 10:26:18.000000000 +0200
+++ gcc-4.4.5/libjava/Makefile.in 2010-10-09 23:12:22.000000000 +0200
@@ -9180,6 +9180,9 @@
ecjx$(EXEEXT): $(ecjx_OBJECTS) $(ecjx_DEPENDENCIES)
@rm -f ecjx$(EXEEXT)
$(ecjx_LINK) $(ecjx_LDFLAGS) $(ecjx_OBJECTS) $(ecjx_LDADD) $(LIBS)
+ecjx.$(OBJEXT): $(ecjx_SOURCES)
+ @rm -f ecjx.$(OBJEXT)
+ $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c -o $@ $<
gappletviewer$(EXEEXT): $(gappletviewer_OBJECTS) $(gappletviewer_DEPENDENCIES)
@rm -f gappletviewer$(EXEEXT)
$(gappletviewer_LINK) $(gappletviewer_LDFLAGS) $(gappletviewer_OBJECTS) $(gappletviewer_LDADD) $(LIBS)

View File

@ -1,30 +0,0 @@
-= BEGIN original header =-
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_304-index_macro.patch
-= END original header =-
diff -durN gcc-4.4.5.orig/libstdc++-v3/include/ext/rope gcc-4.4.5/libstdc++-v3/include/ext/rope
--- gcc-4.4.5.orig/libstdc++-v3/include/ext/rope 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/libstdc++-v3/include/ext/rope 2010-10-09 23:12:51.000000000 +0200
@@ -54,6 +54,9 @@
#include <bits/gthr.h>
#include <tr1/functional>
+/* cope w/ index defined as macro, SuSv3 proposal */
+#undef index
+
# ifdef __GC
# define __GC_CONST const
# else
diff -durN gcc-4.4.5.orig/libstdc++-v3/include/ext/ropeimpl.h gcc-4.4.5/libstdc++-v3/include/ext/ropeimpl.h
--- gcc-4.4.5.orig/libstdc++-v3/include/ext/ropeimpl.h 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/libstdc++-v3/include/ext/ropeimpl.h 2010-10-09 23:12:51.000000000 +0200
@@ -49,6 +49,9 @@
#include <ext/memory> // For uninitialized_copy_n
#include <ext/numeric> // For power
+/* cope w/ index defined as macro, SuSv3 proposal */
+#undef index
+
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
using std::size_t;

View File

@ -1,32 +0,0 @@
By Lennert Buytenhek <buytenh@wantstofly.org>
Adds support for arm*b-linux* big-endian ARM targets
See http://gcc.gnu.org/PR16350
diff -durN gcc-4.4.5.orig/gcc/config/arm/linux-elf.h gcc-4.4.5/gcc/config/arm/linux-elf.h
--- gcc-4.4.5.orig/gcc/config/arm/linux-elf.h 2009-02-20 16:20:38.000000000 +0100
+++ gcc-4.4.5/gcc/config/arm/linux-elf.h 2010-10-09 23:13:21.000000000 +0200
@@ -51,7 +51,7 @@
#undef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS \
- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
/* Now we define the strings used to build the spec file. */
#undef LIB_SPEC
diff -durN gcc-4.4.5.orig/gcc/config.gcc gcc-4.4.5/gcc/config.gcc
--- gcc-4.4.5.orig/gcc/config.gcc 2010-10-09 23:09:53.000000000 +0200
+++ gcc-4.4.5/gcc/config.gcc 2010-10-09 23:13:21.000000000 +0200
@@ -739,6 +739,11 @@
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h"
tmake_file="arm/t-arm arm/t-arm-elf"
case ${target} in
+ arm*b-*)
+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+ ;;
+ esac
+ case ${target} in
arm*-*-uclinux*eabi)
tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
tmake_file="$tmake_file arm/t-bpabi"

View File

@ -1,38 +0,0 @@
ChangeLog:
2010-01-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR bootstrap/41818
* Makefile.tpl (BASE_TARGET_EXPORTS): Only add TARGET_LIB_PATH
to $(RPATH_ENVVAR) if bootstrapping.
* Makefile.in: Regenerate.
diff -durN gcc-4.4.5.orig/Makefile.in gcc-4.4.5/Makefile.in
--- gcc-4.4.5.orig/Makefile.in 2009-04-25 06:10:29.000000000 +0200
+++ gcc-4.4.5/Makefile.in 2010-10-09 23:13:50.000000000 +0200
@@ -245,7 +245,10 @@
STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
- $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
+@if gcc-bootstrap
+ $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
+@endif gcc-bootstrap
+ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
RAW_CXX_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \
diff -durN gcc-4.4.5.orig/Makefile.tpl gcc-4.4.5/Makefile.tpl
--- gcc-4.4.5.orig/Makefile.tpl 2009-04-14 10:57:33.000000000 +0200
+++ gcc-4.4.5/Makefile.tpl 2010-10-09 23:13:50.000000000 +0200
@@ -248,7 +248,10 @@
STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
- $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
+@if gcc-bootstrap
+ $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
+@endif gcc-bootstrap
+ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
RAW_CXX_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \

View File

@ -1,134 +0,0 @@
http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00269.html
On glibc the libc.so carries a copy of the math function copysignl() but
contains unresolved symbols, any attempt to link against libgcc_s
without explicitely specifying -lm fails, resulting in a broken
bootstrap of the compiler.
diff -durN gcc-4.4.5.orig/gcc/config/t-slibgcc-elf-ver gcc-4.4.5/gcc/config/t-slibgcc-elf-ver
--- gcc-4.4.5.orig/gcc/config/t-slibgcc-elf-ver 2010-01-04 16:13:08.000000000 +0100
+++ gcc-4.4.5/gcc/config/t-slibgcc-elf-ver 2010-10-09 23:14:18.000000000 +0200
@@ -9,7 +9,7 @@
SHLIB_OBJS = @shlib_objs@
SHLIB_DIR = @multilib_dir@
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
-SHLIB_LC = -lc
+SHLIB_LC = @libgcc_libm@ -lc
SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
diff -durN gcc-4.4.5.orig/libgcc/configure gcc-4.4.5/libgcc/configure
--- gcc-4.4.5.orig/libgcc/configure 2008-11-20 18:13:01.000000000 +0100
+++ gcc-4.4.5/libgcc/configure 2010-10-09 23:14:18.000000000 +0200
@@ -272,7 +272,7 @@
PACKAGE_BUGREPORT=''
ac_unique_file="static-object.mk"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls LIBGCC_LIBM tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS'
ac_subst_files=''
ac_pwd=`pwd`
@@ -3547,6 +3547,39 @@
fi
+# On powerpc libgcc_s references copysignl which is a libm function but
+# glibc apparently also provides it via libc as opposed to uClibc where
+# it lives in libm.
+echo "$as_me:$LINENO: checking for library containing copysignl" >&5
+echo $ECHO_N "checking for library containing copysignl... $ECHO_C" >&6
+if test "${libgcc_cv_copysignl_lib+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ echo '#include <features.h>' > conftest.c
+ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c
+ libgcc_cv_copysignl_lib="-lc"
+ if { ac_try='${CC-cc} -S conftest.c -o conftest.s 1>&5'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }
+ then
+ libgcc_cv_copysignl_lib="-lm"
+ fi
+ rm -f conftest.*
+
+fi
+echo "$as_me:$LINENO: result: $libgcc_cv_copysignl_lib" >&5
+echo "${ECHO_T}$libgcc_cv_copysignl_lib" >&6
+
+case /${libgcc_cv_copysignl_lib}/ in
+ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;;
+ *) LIBGCC_LIBM= ;;
+esac
+
+
# Conditionalize the makefile for this target machine.
tmake_file_=
for f in ${tmake_file}
@@ -4267,6 +4300,7 @@
s,@fixed_point@,$fixed_point,;t t
s,@vis_hide@,$vis_hide,;t t
s,@set_have_cc_tls@,$set_have_cc_tls,;t t
+s,@LIBGCC_LIBM@,$LIBGCC_LIBM,;t t
s,@tmake_file@,$tmake_file,;t t
s,@extra_parts@,$extra_parts,;t t
s,@asm_hidden_op@,$asm_hidden_op,;t t
diff -durN gcc-4.4.5.orig/libgcc/configure.ac gcc-4.4.5/libgcc/configure.ac
--- gcc-4.4.5.orig/libgcc/configure.ac 2008-11-20 18:13:01.000000000 +0100
+++ gcc-4.4.5/libgcc/configure.ac 2010-10-09 23:14:18.000000000 +0200
@@ -223,6 +223,27 @@
fi
AC_SUBST(set_have_cc_tls)
+# On powerpc libgcc_s references copysignl which is a libm function but
+# glibc apparently also provides it via libc as opposed to uClibc where
+# it lives in libm.
+AC_CACHE_CHECK
+ libgcc_cv_copysignl_lib,
+ echo '#include <features.h>' > conftest.c
+ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c
+ libgcc_cv_copysignl_lib="-lc"
+ if AC_TRY_COMMAND(${CC-cc} -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD)
+ then
+ libgcc_cv_copysignl_lib="-lm"
+ fi
+ rm -f conftest.*
+ ])
+
+case /${libgcc_cv_copysignl_lib}/ in
+ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;;
+ *) LIBGCC_LIBM= ;;
+esac
+AC_SUBST(LIBGCC_LIBM)
+
# Conditionalize the makefile for this target machine.
tmake_file_=
for f in ${tmake_file}
diff -durN gcc-4.4.5.orig/libgcc/Makefile.in gcc-4.4.5/libgcc/Makefile.in
--- gcc-4.4.5.orig/libgcc/Makefile.in 2009-04-10 01:23:07.000000000 +0200
+++ gcc-4.4.5/libgcc/Makefile.in 2010-10-09 23:14:18.000000000 +0200
@@ -39,6 +39,7 @@
decimal_float = @decimal_float@
enable_decimal_float = @enable_decimal_float@
fixed_point = @fixed_point@
+LIBGCC_LIBM = @LIBGCC_LIBM@
host_noncanonical = @host_noncanonical@
@@ -787,9 +788,10 @@
@multilib_dir@,$(MULTIDIR),$(subst \
@shlib_objs@,$(objects),$(subst \
@shlib_base_name@,libgcc_s,$(subst \
+ @libgcc_libm@,$(LIBGCC_LIBM),$(subst \
@shlib_map_file@,$(mapfile),$(subst \
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \
- @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK))))))))
+ @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK)))))))))
libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts)
# @multilib_flags@ is still needed because this may use

Some files were not shown because too many files have changed in this diff Show More