* [PATCH] gcc: poison default sysroot path
@ 2014-10-24 14:10 Richard Purdie
2014-10-26 11:34 ` Koen Kooi
0 siblings, 1 reply; 2+ messages in thread
From: Richard Purdie @ 2014-10-24 14:10 UTC (permalink / raw)
To: openembedded-core
Various pieces of the code assume that the --sysroot option gets passed
into the compiler tools. By having a "sane" default, we don't always
spot when this occurs and this can later show up as breakage in sstate,
or in usage of the external toolchain.
We've long since talked about poisoning the default such that it will
break unless the correct option is specified. This patch does just that.
If this patch causes something to fail to build, it most likely means
the various compiler flags and commands are not correctly being passed
through to the underlying piece of software and that there is a real
problem that needs fixing, its not the fault of this patch.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
diff --git a/meta/recipes-devtools/gcc/gcc-4.9.inc b/meta/recipes-devtools/gcc/gcc-4.9.inc
index 25778bd..d3be8d4 100644
--- a/meta/recipes-devtools/gcc/gcc-4.9.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.9.inc
@@ -121,8 +121,8 @@ EXTRA_OECONF_INTERMEDIATE = "\
EXTRA_OECONF_append_libc-uclibc = " --disable-decimal-float "
EXTRA_OECONF_PATHS = "\
- --with-gxx-include-dir=${STAGING_DIR_TARGET}${target_includedir}/c++/${BINV} \
- --with-sysroot=${STAGING_DIR_TARGET} \
+ --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
+ --with-sysroot=/not/exist \
--with-build-sysroot=${STAGING_DIR_TARGET} \
"
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
index 0b1f37b..1a63f82 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
@@ -10,9 +10,9 @@ GCCMULTILIB = "--enable-multilib"
require gcc-configure-common.inc
EXTRA_OECONF_PATHS = "\
- --with-gxx-include-dir=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}${target_includedir}/c++/${BINV} \
+ --with-gxx-include-dir=/not/exist${target_includedir}/c++/${BINV} \
--with-build-time-tools=${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin \
- --with-sysroot=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS} \
+ --with-sysroot=/not/exist \
--with-build-sysroot=${STAGING_DIR_TARGET} \
"
# We have to point gcc at a sysroot but we don't need to rebuild if this changes
diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial.inc b/meta/recipes-devtools/gcc/gcc-cross-initial.inc
index 6e2f25b..7197447 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-initial.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross-initial.inc
@@ -21,7 +21,7 @@ EXTRA_OECONF = "\
--enable-languages=c \
${OPTSPACE} \
--program-prefix=${TARGET_PREFIX} \
- --with-sysroot=${STAGING_DIR_TARGET} \
+ --with-sysroot=/not/exist \
--with-build-sysroot=${GCCCROSS_BUILDSYSROOT} \
${EXTRA_OECONF_INITIAL} \
${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--with-ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)} \
diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc
index 4cdb55f..9147acd 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -25,8 +25,8 @@ EXTRA_OECONF += "\
"
EXTRA_OECONF_PATHS = "\
- --with-gxx-include-dir=${STAGING_DIR_TARGET}${target_includedir}/c++/${BINV} \
- --with-sysroot=${STAGING_DIR_TARGET} \
+ --with-gxx-include-dir=/not/exist${target_includedir}/c++/${BINV} \
+ --with-sysroot=/not/exist \
--with-build-sysroot=${STAGING_DIR_TARGET} \
"
diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
index 167869e..0348bc4 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -4,7 +4,7 @@ CXXFLAGS := "${@oe_filter_out('-fvisibility-inlines-hidden', '${CXXFLAGS}', d)}"
EXTRA_OECONF_PATHS = "\
--with-gxx-include-dir=${includedir}/c++/${BINV} \
- --with-sysroot=${STAGING_DIR_TARGET} \
+ --with-sysroot=/not/exist \
--with-build-sysroot=${STAGING_DIR_TARGET} \
"
diff --git a/meta/recipes-devtools/gcc/libgfortran.inc b/meta/recipes-devtools/gcc/libgfortran.inc
index cf7942f..e42843d 100644
--- a/meta/recipes-devtools/gcc/libgfortran.inc
+++ b/meta/recipes-devtools/gcc/libgfortran.inc
@@ -1,7 +1,7 @@
require gcc-configure-common.inc
EXTRA_OECONF_PATHS = "\
- --with-sysroot=${STAGING_DIR_TARGET} \
+ --with-sysroot=/not/exist \
--with-build-sysroot=${STAGING_DIR_TARGET} \
"
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] gcc: poison default sysroot path
2014-10-24 14:10 [PATCH] gcc: poison default sysroot path Richard Purdie
@ 2014-10-26 11:34 ` Koen Kooi
0 siblings, 0 replies; 2+ messages in thread
From: Koen Kooi @ 2014-10-26 11:34 UTC (permalink / raw)
To: Richard Purdie; +Cc: openembedded-core
> Op 24 okt. 2014, om 16:10 heeft Richard Purdie <richard.purdie@linuxfoundation.org> het volgende geschreven:
>
> Various pieces of the code assume that the --sysroot option gets passed
> into the compiler tools. By having a "sane" default, we don't always
> spot when this occurs and this can later show up as breakage in sstate,
> or in usage of the external toolchain.
>
> We've long since talked about poisoning the default such that it will
> break unless the correct option is specified. This patch does just that.
>
> If this patch causes something to fail to build, it most likely means
> the various compiler flags and commands are not correctly being passed
> through to the underlying piece of software and that there is a real
> problem that needs fixing, its not the fault of this patch.
So hopefully this won't be needed anymore in my autobuilders:
export GCCARCH=$(MACHINE=${machine} bitbake -e | grep TARGET_ARCH\= | awk -F'"' '{print $2}')
MACHINE=$machine bitbake gcc-cross-${GCCARCH} -c cleansstate || true
Current offenders are: u-boot, linux and on x86 only, opencv.
regards,
Koen
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-10-26 11:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-24 14:10 [PATCH] gcc: poison default sysroot path Richard Purdie
2014-10-26 11:34 ` Koen Kooi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.