diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2013-05-31 15:23:10 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-06-04 15:55:46 +0100 |
commit | 807476eac75706b0b7648dcb378ccb10fa3f1a91 (patch) | |
tree | e8aee8098aaaffd7b44bb76e67bb1fa32f2ae563 | |
parent | cd906fa2a8e1668136597d44af139a502f5b52a5 (diff) | |
download | poky-807476eac75706b0b7648dcb378ccb10fa3f1a91.tar.gz |
gcc: Workaround for compiler flag mismatch
When cross compiling the target compiler, both the cross-compiler
and the host compiler are used. However, the -W options used were
discovered from the cross-compiler and may be incompatible with the
host compiler.
(From OE-Core rev: 1f40202ce3c1282674b6cea39ef709972275f201)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.8.inc | 1 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.8/gcc-4.8-build-args.patch | 51 |
2 files changed, 52 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc index a9786da97e..80bd02ccf6 100644 --- a/meta/recipes-devtools/gcc/gcc-4.8.inc +++ b/meta/recipes-devtools/gcc/gcc-4.8.inc | |||
@@ -66,6 +66,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ | |||
66 | file://0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch \ | 66 | file://0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch \ |
67 | file://0035-wcast-qual-PR-55383.patch \ | 67 | file://0035-wcast-qual-PR-55383.patch \ |
68 | file://gcc-4.8-PR56797.patch \ | 68 | file://gcc-4.8-PR56797.patch \ |
69 | file://gcc-4.8-build-args.patch \ | ||
69 | " | 70 | " |
70 | SRC_URI[md5sum] = "e6040024eb9e761c3bea348d1fa5abb0" | 71 | SRC_URI[md5sum] = "e6040024eb9e761c3bea348d1fa5abb0" |
71 | SRC_URI[sha256sum] = "b037fe5132b71ecad2ea7141ec92292b5d32427bf90fd90cde432b1d5abacc2c" | 72 | SRC_URI[sha256sum] = "b037fe5132b71ecad2ea7141ec92292b5d32427bf90fd90cde432b1d5abacc2c" |
diff --git a/meta/recipes-devtools/gcc/gcc-4.8/gcc-4.8-build-args.patch b/meta/recipes-devtools/gcc/gcc-4.8/gcc-4.8-build-args.patch new file mode 100644 index 0000000000..95f39bb23d --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.8/gcc-4.8-build-args.patch | |||
@@ -0,0 +1,51 @@ | |||
1 | When cross compiling a target gcc, target flags may be used on the host | ||
2 | |||
3 | Configure identifies a number of warning flags (WARN_CFLAGS and | ||
4 | WARN_CXXFLAGS) from the $CC value. The cross compiler may be different | ||
5 | from the host compiler and may not support the same set of flags. This | ||
6 | leads to problems such as: | ||
7 | |||
8 | cc1plus: error: unrecognized command line option "-Wno-narrowing" | ||
9 | cc1plus: error: unrecognized command line option "-Wno-overlength-strings" | ||
10 | |||
11 | Work around this problem by removing the warning flags from the | ||
12 | BUILD_*FLAGS values. | ||
13 | |||
14 | Upstream-Status: Pending | ||
15 | |||
16 | Signed-off-by: Mark Hatle <mark.hatle@windriver.com> | ||
17 | |||
18 | diff -ur gcc-4.8.0.orig/gcc/configure.ac gcc-4.8.0/gcc/configure.ac | ||
19 | --- gcc-4.8.0.orig/gcc/configure.ac 2013-05-29 14:44:24.960853593 -0500 | ||
20 | +++ gcc-4.8.0/gcc/configure.ac 2013-05-31 01:34:09.518775962 -0500 | ||
21 | @@ -1892,8 +1892,8 @@ | ||
22 | # These are the normal (build=host) settings: | ||
23 | CC_FOR_BUILD='$(CC)' AC_SUBST(CC_FOR_BUILD) | ||
24 | CXX_FOR_BUILD='$(CXX)' AC_SUBST(CXX_FOR_BUILD) | ||
25 | -BUILD_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(BUILD_CFLAGS) | ||
26 | -BUILD_CXXFLAGS='$(ALL_CXXFLAGS)' AC_SUBST(BUILD_CXXFLAGS) | ||
27 | +BUILD_CFLAGS='$(ALL_BUILD_CFLAGS)' AC_SUBST(BUILD_CFLAGS) | ||
28 | +BUILD_CXXFLAGS='$(ALL_BUILD_CXXFLAGS)' AC_SUBST(BUILD_CXXFLAGS) | ||
29 | BUILD_LDFLAGS='$(LDFLAGS)' AC_SUBST(BUILD_LDFLAGS) | ||
30 | STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC) | ||
31 | |||
32 | diff -ur gcc-4.8.0.orig/gcc/Makefile.in gcc-4.8.0/gcc/Makefile.in | ||
33 | --- gcc-4.8.0.orig/gcc/Makefile.in 2013-05-29 14:44:24.369853593 -0500 | ||
34 | +++ gcc-4.8.0/gcc/Makefile.in 2013-05-31 01:34:30.360776427 -0500 | ||
35 | @@ -989,10 +989,16 @@ | ||
36 | ALL_CFLAGS = $(T_CFLAGS) $(CFLAGS-$@) \ | ||
37 | $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@ | ||
38 | |||
39 | +ALL_BUILD_CFLAGS = $(T_CFLAGS) $(CFLAGS-$@) \ | ||
40 | + $(CFLAGS) $(INTERNAL_CFLAGS) @DEFS@ | ||
41 | + | ||
42 | # The C++ version. | ||
43 | ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \ | ||
44 | $(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) $(WARN_CXXFLAGS) @DEFS@ | ||
45 | |||
46 | +ALL_BUILD_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \ | ||
47 | + $(NOEXCEPTION_FLAGS) @DEFS@ | ||
48 | + | ||
49 | # Likewise. Put INCLUDES at the beginning: this way, if some autoconf macro | ||
50 | # puts -I options in CPPFLAGS, our include files in the srcdir will always | ||
51 | # win against random include files in /usr/include. | ||