gcc-4.5: Sync patches from yocto

With this patchset now the gcc has all goodies from
OE as well as yocto together merged into meta-oe

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
Khem Raj 2011-03-19 15:35:06 -07:00 committed by Koen Kooi
parent 2fe69cb8c5
commit 469531f353
6 changed files with 134 additions and 38 deletions

View File

@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
SRCREV = "170880"
PV = "4.5"
INC_PR = "r33"
INC_PR = "r34"
# BINV should be incremented after updating to a revision
# after a minor gcc release (e.g. 4.5.1 or 4.5.2) has been made
@ -37,6 +37,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH} \
file://gcc-armv4-pass-fix-v4bx-to-ld.patch \
file://sh4-multilib.patch \
file://arm-lib1funcs.as-fix-mismatch-between-conditions-of-an-IT-block.patch \
\
file://linaro/gcc-4.5-linaro-r99297.patch \
file://linaro/gcc-4.5-linaro-r99298.patch \
file://linaro/gcc-4.5-linaro-r99299.patch \
@ -182,9 +183,23 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH} \
file://gcc-scalar-widening-pr45847.patch \
file://gcc-arm-volatile-bitfield-fix.patch \
\
file://fedora/gcc43-c++-builtin-redecl.patch;striplevel=0 \
file://fedora/gcc43-ia64-libunwind.patch;striplevel=0 \
file://fedora/gcc43-java-nomulti.patch;striplevel=0 \
file://fedora/gcc43-ppc32-retaddr.patch;striplevel=0 \
file://fedora/gcc43-pr32139.patch;striplevel=0 \
file://fedora/gcc43-pr33763.patch;striplevel=0 \
file://fedora/gcc43-rh330771.patch;striplevel=0 \
file://fedora/gcc43-rh341221.patch;striplevel=0 \
file://fedora/gcc43-java-debug-iface-type.patch;striplevel=0 \
file://fedora/gcc43-i386-libgomp.patch;striplevel=0 \
file://fedora/gcc45-no-add-needed.patch;striplevel=0 \
file://optional_libstdc.patch \
file://64bithack.patch \
file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \
file://COLLECT_GCC_OPTIONS.patch \
file://gcc-poison-dir-extend.patch \
file://gcc-poison-parameters.patch \
"
# Language Overrides

View File

@ -0,0 +1,23 @@
#This patck added --sysroot into COLLECT_GCC_OPTIONS which is used to
#invoke collect2.
Index: gcc-4_5-branch/gcc/gcc.c
===================================================================
--- gcc-4_5-branch.orig/gcc/gcc.c
+++ gcc-4_5-branch/gcc/gcc.c
@@ -4667,6 +4667,15 @@ set_collect_gcc_options (void)
sizeof ("COLLECT_GCC_OPTIONS=") - 1);
first_time = TRUE;
+#ifdef HAVE_LD_SYSROOT
+ if (target_system_root_changed && target_system_root)
+ {
+ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1);
+ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root));
+ obstack_grow (&collect_obstack, "'", 1);
+ first_time = FALSE;
+ }
+#endif
for (i = 0; (int) i < n_switches; i++)
{
const char *const *args;

View File

@ -0,0 +1,52 @@
2010-02-08 Roland McGrath <roland@redhat.com>
* config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
linker.
* config/linux.h (LINK_EH_SPEC): Likewise.
* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
--- gcc/config/alpha/elf.h.~1~
+++ gcc/config/alpha/elf.h
@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
I imagine that other systems will catch up. In the meantime, it
doesn't harm to make sure that the data exists to be used later. */
#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
#endif
/* A C statement (sans semicolon) to output to the stdio stream STREAM
--- gcc/config/ia64/linux.h.~1~
+++ gcc/config/ia64/linux.h
@@ -58,7 +58,7 @@ do { \
Signalize that because we have fde-glibc, we don't need all C shared libs
linked against -lgcc_s. */
#undef LINK_EH_SPEC
-#define LINK_EH_SPEC ""
+#define LINK_EH_SPEC "--no-add-needed "
#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
--- gcc/config/linux.h.~1~
+++ gcc/config/linux.h
@@ -89,7 +89,7 @@ see the files COPYING3 and COPYING.RUNTI
} while (0)
#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
#endif
/* Define this so we can compile MS code for use with WINE. */
--- gcc/config/rs6000/sysv4.h.~1~
+++ gcc/config/rs6000/sysv4.h
@@ -917,7 +917,7 @@ SVR4_ASM_SPEC \
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
#if defined(HAVE_LD_EH_FRAME_HDR)
-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
+# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
#endif
#define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \

View File

@ -8,17 +8,18 @@ wants this to be a failure, they can add "-Werror=poison-system-directories".
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
diff -ur gcc-4.5.0.orig/gcc/incpath.c gcc-4.5.0/gcc/incpath.c
--- gcc-4.5.0.orig/gcc/incpath.c 2010-09-29 14:58:31.358975524 -0500
+++ gcc-4.5.0/gcc/incpath.c 2010-09-29 15:08:02.065975516 -0500
@@ -363,7 +363,9 @@
{
if ((!strncmp (p->name, "/usr/include", 12))
|| (!strncmp (p->name, "/usr/local/include", 18))
- || (!strncmp (p->name, "/usr/X11R6/include", 18)))
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
+ || (!strncmp (p->name, "/sw/include", 11))
+ || (!strncmp (p->name, "/opt/include", 12)))
warning (OPT_Wpoison_system_directories,
"include location \"%s\" is unsafe for "
"cross-compilation",
Index: gcc-4_5-branch/gcc/incpath.c
===================================================================
--- gcc-4_5-branch.orig/gcc/incpath.c
+++ gcc-4_5-branch/gcc/incpath.c
@@ -365,7 +365,9 @@ merge_include_chains (const char *sysroo
{
if ((!strncmp (p->name, "/usr/include", 12))
|| (!strncmp (p->name, "/usr/local/include", 18))
- || (!strncmp (p->name, "/usr/X11R6/include", 18)))
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
+ || (!strncmp (p->name, "/sw/include", 11))
+ || (!strncmp (p->name, "/opt/include", 12)))
warning (OPT_Wpoison_system_directories,
"include location \"%s\" is unsafe for "
"cross-compilation",

View File

@ -6,11 +6,11 @@ This could avoid potential binary crash.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
diff --git a/gcc/config.in b/gcc/config.in
index a9e208f..3004321 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -132,6 +132,12 @@
Index: gcc-4_5-branch/gcc/config.in
===================================================================
--- gcc-4_5-branch.orig/gcc/config.in
+++ gcc-4_5-branch/gcc/config.in
@@ -138,6 +138,12 @@
#endif
@ -23,19 +23,19 @@ index a9e208f..3004321 100644
/* Define if you want all operations on RTL (the basic data structure of the
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
index 2e022ed..004ec0b 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -909,6 +909,7 @@ enable_maintainer_mode
enable_version_specific_runtime_libs
Index: gcc-4_5-branch/gcc/configure
===================================================================
--- gcc-4_5-branch.orig/gcc/configure
+++ gcc-4_5-branch/gcc/configure
@@ -915,6 +915,7 @@ enable_version_specific_runtime_libs
with_slibdir
enable_poison_system_directories
enable_plugin
+enable_target_optspace
'
ac_precious_vars='build_alias
host_alias
@@ -25289,6 +25290,13 @@ $as_echo "#define ENABLE_PLUGIN 1" >>confdefs.h
@@ -25658,6 +25659,13 @@ $as_echo "#define ENABLE_PLUGIN 1" >>con
fi
@ -49,11 +49,11 @@ index 2e022ed..004ec0b 100755
# Configure the subdirectories
# AC_CONFIG_SUBDIRS($subdirs)
diff --git a/gcc/configure.ac b/gcc/configure.ac
index ac4ca70..18ec0aa 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -4434,6 +4434,11 @@ if test x"$enable_plugin" = x"yes"; then
Index: gcc-4_5-branch/gcc/configure.ac
===================================================================
--- gcc-4_5-branch.orig/gcc/configure.ac
+++ gcc-4_5-branch/gcc/configure.ac
@@ -4659,6 +4659,11 @@ if test x"$enable_plugin" = x"yes"; then
AC_DEFINE(ENABLE_PLUGIN, 1, [Define to enable plugin support.])
fi
@ -65,11 +65,11 @@ index ac4ca70..18ec0aa 100644
# Configure the subdirectories
# AC_CONFIG_SUBDIRS($subdirs)
diff --git a/gcc/opts.c b/gcc/opts.c
index 139cd26..2fdd96a 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -945,6 +945,11 @@ decode_options (unsigned int argc, const char **argv)
Index: gcc-4_5-branch/gcc/opts.c
===================================================================
--- gcc-4_5-branch.orig/gcc/opts.c
+++ gcc-4_5-branch/gcc/opts.c
@@ -953,6 +953,11 @@ decode_options (unsigned int argc, const
else
set_param_value ("min-crossjump-insns", initial_min_crossjump_insns);

View File

@ -1,4 +1,4 @@
PR = "${INC_PR}.0"
PR = "${INC_PR}.1"
require recipes-devtools/gcc/gcc-${PV}.inc
require recipes-devtools/gcc/gcc-configure-runtime.inc
@ -9,3 +9,8 @@ SRC_URI_append = "file://fortran-cross-compile-hack.patch"
ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}"
EXTRA_OECONF += "--disable-libunwind-exceptions"
# gcc 4.5 ends up in ICE when using -feliminate-dwarf2-dups in libstdc++
# compiling pre compiled headers so we remove this option when compiling
# to workaround it
CXXFLAGS := "${@oe_filter_out('-feliminate-dwarf2-dups', '${CXXFLAGS}', d)}"