aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gcc
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2010-08-27 15:10:14 -0700
committerKhem Raj <raj.khem@gmail.com>2010-08-27 15:41:47 -0700
commitcae75453c10e28db9e21b2dd00a86b631a4af2bd (patch)
tree8761a06e9fe0c17a17705828ada4b22a761c61c1 /recipes/gcc
parent6cd42a4739cb22ad3b94b3c81a14516a709da5d1 (diff)
downloadopenembedded-cae75453c10e28db9e21b2dd00a86b631a4af2bd.tar.gz
openembedded-cae75453c10e28db9e21b2dd00a86b631a4af2bd.tar.bz2
openembedded-cae75453c10e28db9e21b2dd00a86b631a4af2bd.zip
gcc-4.4.4: on PPC/SPE when compiling with -Os gcc needs parts of libgcc.a make that happen
* The existing patch did redefine the SHLIB_MAKE_SOLINK and SHLIB_INSTALL_SOLINK but it was ineffective because the original definitions appeared after it. We needed to rearrange the order * t-slibgcc-libgcc is already there so no need to patch it. Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/gcc')
-rw-r--r--recipes/gcc/gcc-4.4.4.inc2
-rw-r--r--recipes/gcc/gcc-4.4.4/gcc-add-t-slibgcc-libgcc.patch59
2 files changed, 11 insertions, 50 deletions
diff --git a/recipes/gcc/gcc-4.4.4.inc b/recipes/gcc/gcc-4.4.4.inc
index 5de1c19d27..51337e1a44 100644
--- a/recipes/gcc/gcc-4.4.4.inc
+++ b/recipes/gcc/gcc-4.4.4.inc
@@ -8,7 +8,7 @@ LICENSE = "GPLv3"
DEPENDS = "mpfr gmp"
NATIVEDEPS = "mpfr-native gmp-native"
-INC_PR = "r4"
+INC_PR = "r5"
SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=gcc444tarbz2 \
file://gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
diff --git a/recipes/gcc/gcc-4.4.4/gcc-add-t-slibgcc-libgcc.patch b/recipes/gcc/gcc-4.4.4/gcc-add-t-slibgcc-libgcc.patch
index 337bd9250e..c0020b30c4 100644
--- a/recipes/gcc/gcc-4.4.4/gcc-add-t-slibgcc-libgcc.patch
+++ b/recipes/gcc/gcc-4.4.4/gcc-add-t-slibgcc-libgcc.patch
@@ -1,5 +1,6 @@
This is a backport of commit revision 151568 from trunk into 4.4
the changes for config/t-slibgcc-elf-ver are already available in 4.4
+and t-slibgcc-libgcc is available in 4.4.4
so they dont reflect in the patch as they are mentioned in the changelog
message.
@@ -20,9 +21,9 @@ which has this problem when using libtool and -Os flag.
Index: gcc-4.4.4/gcc/config.gcc
===================================================================
---- gcc-4.4.4.orig/gcc/config.gcc 2010-02-17 20:24:04.000000000 -0800
-+++ gcc-4.4.4/gcc/config.gcc 2010-05-14 13:57:33.701847829 -0700
-@@ -1745,12 +1745,12 @@ powerpc64-*-linux*)
+--- gcc-4.4.4.orig/gcc/config.gcc 2010-08-27 21:04:18.246053928 +0000
++++ gcc-4.4.4/gcc/config.gcc 2010-08-27 21:48:06.258158384 +0000
+@@ -1745,12 +1745,12 @@
tm_file="rs6000/secureplt.h ${tm_file}"
fi
extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
@@ -37,28 +38,28 @@ Index: gcc-4.4.4/gcc/config.gcc
;;
powerpc-*-darwin*)
extra_options="${extra_options} rs6000/darwin.opt"
-@@ -1827,17 +1827,17 @@ powerpc-*-rtems*)
+@@ -1827,17 +1827,17 @@
powerpc-*-linux*altivec*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
-+ tmake_file="rs6000/t-fprules t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
++ tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} t-slibgcc-libgcc rs6000/t-ppccomm"
;;
powerpc-*-linux*spe*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h rs6000/e500.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="t-dfprules rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
-+ tmake_file="t-dfprules rs6000/t-fprules t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
++ tmake_file="t-dfprules rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} t-slibgcc-libgcc rs6000/t-ppccomm"
;;
powerpc-*-linux*paired*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/750cl.h"
extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
-+ tmake_file="rs6000/t-fprules t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
++ tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} t-slibgcc-libgcc rs6000/t-ppccomm"
;;
powerpc-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
-@@ -1856,7 +1856,7 @@ powerpc-*-linux*)
+@@ -1856,7 +1856,7 @@
tm_file="${tm_file} rs6000/linux.h"
;;
esac
@@ -67,7 +68,7 @@ Index: gcc-4.4.4/gcc/config.gcc
if test x${enable_secureplt} = xyes; then
tm_file="rs6000/secureplt.h ${tm_file}"
fi
-@@ -1864,14 +1864,14 @@ powerpc-*-linux*)
+@@ -1864,14 +1864,14 @@
powerpc-*-gnu-gnualtivec*)
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h"
extra_options="${extra_options} rs6000/sysv4.opt"
@@ -84,43 +85,3 @@ Index: gcc-4.4.4/gcc/config.gcc
extra_options="${extra_options} rs6000/sysv4.opt"
if test x$enable_threads = xyes; then
thread_file='posix'
-Index: gcc-4.4.4/gcc/config/t-slibgcc-libgcc
-===================================================================
---- gcc-4.4.4.orig/gcc/config/t-slibgcc-libgcc 2010-01-04 07:13:08.000000000 -0800
-+++ gcc-4.4.4/gcc/config/t-slibgcc-libgcc 2010-05-14 13:44:41.339352736 -0700
-@@ -30,3 +30,35 @@ SHLIB_MAKE_SOLINK = \
- SHLIB_INSTALL_SOLINK = \
- $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SOLINK) \
- $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
-+# Copyright (C) 2009 Free Software Foundation, Inc.
-+#
-+# This file is part of GCC.
-+#
-+# GCC is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3, or (at your option)
-+# any later version.
-+#
-+# GCC is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with GCC; see the file COPYING3. If not see
-+# <http://www.gnu.org/licenses/>.
-+
-+# Instead of creating $(SHLIB_SOLINK) symlink create a GNU ld
-+# linker script which sources in both $(SHLIB_SONAME) and libgcc.a.
-+# This is needed on targets where libgcc.a contains routines that aren't in
-+# $(SHLIB_SONAME) and are needed for shared libraries.
-+
-+SHLIB_MAKE_SOLINK = \
-+ (echo "/* GNU ld script"; \
-+ echo " Use the shared library, but some functions are only in"; \
-+ echo " the static library. */"; \
-+ echo "GROUP ( $(SHLIB_SONAME) libgcc.a )" \
-+ ) > $(SHLIB_DIR)/$(SHLIB_SOLINK)
-+SHLIB_INSTALL_SOLINK = \
-+ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SOLINK) \
-+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)