1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-01 13:09:50 +00:00

gcc: When cross compiling a target gcc, target flags may be used on the host

The original fix worked some of the time, but not on all machines.  Fix
this by applying the change in a different way.  Following the example of
the existing BUILD_CFLAGS.

Below is the commit message from the original change to help explain why
this is needed:

Configure identifies a number of warning flags (WARN_CFLAGS and
WARN_CXXFLAGS) from the $CC value.  The cross compiler may be different
from the host compiler and may not support the same set of flags.  This
leads to problems such as:

cc1plus: error: unrecognized command line option "-Wno-narrowing"
cc1plus: error: unrecognized command line option "-Wno-overlength-strings"

Work around this problem by removing the warning flags from the
BUILD_CXXFLAGS value, in a way similar to the BUILD_CFLAGS.

(From OE-Core rev: be21c6e8e4f810e826538337dac6e34ed96e1f6f)

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>
This commit is contained in:
Mark Hatle
2013-06-24 09:44:30 -05:00
committed by Richard Purdie
parent 65385d4bb9
commit 216e4dc4aa
@@ -1,6 +1,6 @@
When cross compiling a target gcc, target flags may be used on the host When cross compiling a target gcc, target flags may be used on the host
Configure identifies a number of warning flags (WARN_CFLAGS and Configure identifies a number of warning flags (WARN_CFLAGS and
WARN_CXXFLAGS) from the $CC value. The cross compiler may be different WARN_CXXFLAGS) from the $CC value. The cross compiler may be different
from the host compiler and may not support the same set of flags. This from the host compiler and may not support the same set of flags. This
leads to problems such as: leads to problems such as:
@@ -9,43 +9,33 @@ cc1plus: error: unrecognized command line option "-Wno-narrowing"
cc1plus: error: unrecognized command line option "-Wno-overlength-strings" cc1plus: error: unrecognized command line option "-Wno-overlength-strings"
Work around this problem by removing the warning flags from the Work around this problem by removing the warning flags from the
BUILD_*FLAGS values. BUILD_CXXFLAGS value, in a way similar to the BUILD_CFLAGS.
Upstream-Status: Pending Upstream-Status: Pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
diff -ur gcc-4.8.0.orig/gcc/configure.ac gcc-4.8.0/gcc/configure.ac Index: gcc-4.8.0/gcc/configure
--- gcc-4.8.0.orig/gcc/configure.ac 2013-05-29 14:44:24.960853593 -0500 ===================================================================
+++ gcc-4.8.0/gcc/configure.ac 2013-05-31 01:34:09.518775962 -0500 --- gcc-4.8.0.orig/gcc/configure
@@ -1892,8 +1892,8 @@ +++ gcc-4.8.0/gcc/configure
# These are the normal (build=host) settings: @@ -11720,6 +10581,7 @@ STMP_FIXINC=stmp-fixinc
CC_FOR_BUILD='$(CC)' AC_SUBST(CC_FOR_BUILD) if test x$build != x$host || test "x$coverage_flags" != x
CXX_FOR_BUILD='$(CXX)' AC_SUBST(CXX_FOR_BUILD) then
-BUILD_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(BUILD_CFLAGS) BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
-BUILD_CXXFLAGS='$(ALL_CXXFLAGS)' AC_SUBST(BUILD_CXXFLAGS) + BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
+BUILD_CFLAGS='$(ALL_BUILD_CFLAGS)' AC_SUBST(BUILD_CFLAGS) BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
+BUILD_CXXFLAGS='$(ALL_BUILD_CXXFLAGS)' AC_SUBST(BUILD_CXXFLAGS) fi
BUILD_LDFLAGS='$(LDFLAGS)' AC_SUBST(BUILD_LDFLAGS)
STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC)
diff -ur gcc-4.8.0.orig/gcc/Makefile.in gcc-4.8.0/gcc/Makefile.in Index: gcc-4.8.0/gcc/configure.ac
--- gcc-4.8.0.orig/gcc/Makefile.in 2013-05-29 14:44:24.369853593 -0500 ===================================================================
+++ gcc-4.8.0/gcc/Makefile.in 2013-05-31 01:34:30.360776427 -0500 --- gcc-4.8.0.orig/gcc/configure.ac
@@ -989,10 +989,16 @@ +++ gcc-4.8.0/gcc/configure.ac
ALL_CFLAGS = $(T_CFLAGS) $(CFLAGS-$@) \ @@ -1901,6 +1901,7 @@ STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_F
$(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@ if test x$build != x$host || test "x$coverage_flags" != x
then
BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
+ BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
fi
+ALL_BUILD_CFLAGS = $(T_CFLAGS) $(CFLAGS-$@) \
+ $(CFLAGS) $(INTERNAL_CFLAGS) @DEFS@
+
# The C++ version.
ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \
$(COVERAGE_FLAGS) $(NOEXCEPTION_FLAGS) $(WARN_CXXFLAGS) @DEFS@
+ALL_BUILD_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \
+ $(NOEXCEPTION_FLAGS) @DEFS@
+
# Likewise. Put INCLUDES at the beginning: this way, if some autoconf macro
# puts -I options in CPPFLAGS, our include files in the srcdir will always
# win against random include files in /usr/include.