gcc-4.5.1: make c++ include path relative to "--sysroot"
So far c++ include path is not relative to "--sysroot", which brings trouble if we want to use the toolchain in a new environment where the original build directory generating that toolchain is not available. It's firstly exposed in multiple SDK sysroots support, and then in the case when sstate packages are used, where c++ standard headers are missing because gcc tries to search original build dir. This patch makes c++ include path now relative to "--sysroot", and then once "--sysroot" is assigned correctly in new environment, c++ include paths can be searched as expected. Signed-off-by: Kevin Tian <kevin.tian@intel.com>
This commit is contained in:
parent
2e3cdcb067
commit
f13cb20ed1
|
@ -54,6 +54,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
|
|||
file://optional_libstdc.patch \
|
||||
file://disable_relax_pic_calls_flag.patch \
|
||||
file://gcc-poison-parameters.patch \
|
||||
file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \
|
||||
"
|
||||
|
||||
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
# by default c++ include directories are not relative to "--sysroot"
|
||||
# which brings one trouble when using the toolchain in an environment
|
||||
# where the build directory generating that toolchain doesn't exist,
|
||||
# e.g. in sstate, machine specific sysroot and relocatable SDK
|
||||
# toolchain. This patch now enables c++ include paths under sysroot.
|
||||
# This way it's enough as long as "--sysroot" is correctly enabled
|
||||
# in the new environment.
|
||||
#
|
||||
# Signed-off-by Kevin Tian <kevin.tian@intel.com>, 2010-12-30
|
||||
|
||||
diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
|
||||
index 5024f48..9b47d1c 100644
|
||||
--- a/gcc/cppdefault.c
|
||||
+++ b/gcc/cppdefault.c
|
||||
@@ -48,15 +48,15 @@ const struct default_include cpp_include_defaults[]
|
||||
= {
|
||||
#ifdef GPLUSPLUS_INCLUDE_DIR
|
||||
/* Pick up GNU C++ generic include files. */
|
||||
- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
|
||||
+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1, 0 },
|
||||
#endif
|
||||
#ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
|
||||
/* Pick up GNU C++ target-dependent include files. */
|
||||
- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 1 },
|
||||
+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 1, 1 },
|
||||
#endif
|
||||
#ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
|
||||
/* Pick up GNU C++ backward and deprecated include files. */
|
||||
- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
|
||||
+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1, 0 },
|
||||
#endif
|
||||
#ifdef LOCAL_INCLUDE_DIR
|
||||
/* /usr/local/include comes before the fixincluded header files. */
|
|
@ -5,7 +5,7 @@ USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
|
|||
EXTRA_OECONF += " --enable-poison-system-directories "
|
||||
|
||||
EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${target_exec_prefix} \
|
||||
--with-gxx-include-dir=${STAGING_DIR_TARGET}/${target_includedir}/c++ \
|
||||
--with-gxx-include-dir=${target_includedir}/c++ \
|
||||
--with-sysroot=${STAGING_DIR_TARGET} \
|
||||
--with-build-sysroot=${STAGING_DIR_TARGET}"
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
|
|||
USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d )}'
|
||||
|
||||
EXTRA_OECONF_PATHS = "--with-local-prefix=${SDKPATH}/sysroots/${TARGET_SYS}${target_exec_prefix} \
|
||||
--with-gxx-include-dir=${SDKPATH}/sysroots/${TARGET_SYS}${target_includedir}/c++ \
|
||||
--with-gxx-include-dir=${target_includedir}/c++ \
|
||||
--with-build-time-tools=${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin \
|
||||
--with-sysroot=${SDKPATH}/sysroots/${TARGET_SYS} \
|
||||
--with-build-sysroot=${STAGING_DIR_TARGET}"
|
||||
|
|
|
@ -5,7 +5,7 @@ require gcc-cross-canadian.inc
|
|||
require gcc-configure-sdk.inc
|
||||
require gcc-package-sdk.inc
|
||||
|
||||
PR = "r1"
|
||||
PR = "r2"
|
||||
|
||||
DEPENDS += "gmp-nativesdk mpfr-nativesdk libmpc-nativesdk elfutils-nativesdk"
|
||||
RDEPENDS_${PN} += "mpfr-nativesdk libmpc-nativesdk elfutils-nativesdk"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
require gcc-cross_${PV}.bb
|
||||
require gcc-cross-initial.inc
|
||||
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require gcc-cross_${PV}.bb
|
||||
require gcc-cross-intermediate.inc
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
require gcc-${PV}.inc
|
||||
require gcc-cross4.inc
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require gcc-cross-initial_${PV}.bb
|
||||
require gcc-crosssdk-initial.inc
|
||||
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require gcc-cross-intermediate_${PV}.bb
|
||||
require gcc-crosssdk-intermediate.inc
|
||||
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
require gcc-cross_${PV}.bb
|
||||
require gcc-crosssdk.inc
|
||||
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
require gcc-${PV}.inc
|
||||
require gcc-configure-runtime.inc
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
PR = "r0"
|
||||
PR = "r1"
|
||||
require gcc-${PV}.inc
|
||||
require gcc-configure-target.inc
|
||||
require gcc-package-target.inc
|
||||
|
|
Loading…
Reference in New Issue