[f033e407] | 1 | Submitted By: Jim Gifford (jim at cross-lfs dot org)
|
---|
| 2 | Date: 02-18-2009
|
---|
| 3 | Initial Package Version: 4.3.3
|
---|
| 4 | Origin: Upstream
|
---|
| 5 | Upstream Status: Applied to Mainline
|
---|
| 6 | Description: This fixes a known build issue with Powerpc and GCC 4.3.3
|
---|
| 7 | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37739
|
---|
| 8 |
|
---|
| 9 | diff -Naur gcc-4.3.3.orig/gcc/config/rs6000/x-linux-relax gcc-4.3.3/gcc/config/rs6000/x-linux-relax
|
---|
| 10 | --- gcc-4.3.3.orig/gcc/config/rs6000/x-linux-relax 1969-12-31 16:00:00.000000000 -0800
|
---|
| 11 | +++ gcc-4.3.3/gcc/config/rs6000/x-linux-relax 2009-02-18 10:19:52.235263584 -0800
|
---|
| 12 | @@ -0,0 +1,3 @@
|
---|
| 13 | +# At -O0 cc1 etc. are too large and -Wl,--relax is needed
|
---|
| 14 | +$(COMPILERS) : override LDFLAGS += -Wl,--relax
|
---|
| 15 | +
|
---|
| 16 | diff -Naur gcc-4.3.3.orig/gcc/config/x-cflags-O1 gcc-4.3.3/gcc/config/x-cflags-O1
|
---|
| 17 | --- gcc-4.3.3.orig/gcc/config/x-cflags-O1 1969-12-31 16:00:00.000000000 -0800
|
---|
| 18 | +++ gcc-4.3.3/gcc/config/x-cflags-O1 2009-02-18 10:19:24.149463891 -0800
|
---|
| 19 | @@ -0,0 +1,6 @@
|
---|
| 20 | +# At -O0 cc1 etc. are too large on some targets for successful
|
---|
| 21 | +# link; force building libbackend.a with -O1.
|
---|
| 22 | +ifeq ($(filter-out -O0,$(lastword $(filter -O%,$(CFLAGS)))),)
|
---|
| 23 | +$(OBJS) : override CFLAGS += -O1
|
---|
| 24 | +endif
|
---|
| 25 | +
|
---|
| 26 | diff -Naur gcc-4.3.3.orig/gcc/config.host gcc-4.3.3/gcc/config.host
|
---|
| 27 | --- gcc-4.3.3.orig/gcc/config.host 2007-08-08 12:33:24.000000000 -0700
|
---|
| 28 | +++ gcc-4.3.3/gcc/config.host 2009-02-18 10:18:57.471754434 -0800
|
---|
| 29 | @@ -116,6 +116,27 @@
|
---|
| 30 | host_xmake_file="${host_xmake_file} rs6000/x-rs6000"
|
---|
| 31 | ;;
|
---|
| 32 | esac
|
---|
| 33 | + case ${host} in
|
---|
| 34 | + *-*-linux* )
|
---|
| 35 | + if test "${GCC}:${ac_cv_sizeof_long}" = yes:4; then
|
---|
| 36 | + # On powerpc*-*-linux* use -Wl,--relax to link cc1,
|
---|
| 37 | + # if ld is new enough, otherwise force -O1 in CFLAGS.
|
---|
| 38 | + host_ppc_relax_xmake_file=
|
---|
| 39 | + host_ld_ver=`${CC} -Wl,--version 2>/dev/null | sed 1q`
|
---|
| 40 | + if echo "$host_ld_ver" | grep GNU > /dev/null; then
|
---|
| 41 | + host_ld_date=`echo $host_ld_ver \
|
---|
| 42 | + | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
|
---|
| 43 | + if test 0"$host_ld_date" -gt 20080806; then
|
---|
| 44 | + host_ppc_relax_xmake_file=rs6000/x-linux-relax
|
---|
| 45 | + fi
|
---|
| 46 | + fi
|
---|
| 47 | + if test -z "${host_ppc_relax_xmake_file}"; then
|
---|
| 48 | + host_ppc_relax_xmake_file=x-cflags-O1
|
---|
| 49 | + fi
|
---|
| 50 | + host_xmake_file="${host_xmake_file} ${host_ppc_relax_xmake_file}"
|
---|
| 51 | + fi
|
---|
| 52 | + ;;
|
---|
| 53 | + esac
|
---|
| 54 | ;;
|
---|
| 55 | esac
|
---|
| 56 |
|
---|