diff options
Diffstat (limited to 'external/poky/meta/recipes-devtools/gcc/gcc-target.inc')
-rw-r--r-- | external/poky/meta/recipes-devtools/gcc/gcc-target.inc | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-target.inc b/external/poky/meta/recipes-devtools/gcc/gcc-target.inc index bc2236fe..6263e814 100644 --- a/external/poky/meta/recipes-devtools/gcc/gcc-target.inc +++ b/external/poky/meta/recipes-devtools/gcc/gcc-target.inc @@ -2,9 +2,7 @@ GCCMULTILIB = "--enable-multilib" require gcc-configure-common.inc EXTRA_OECONF_PATHS = "\ - --with-sysroot=/ \ --with-build-sysroot=${STAGING_DIR_TARGET} \ - --with-gxx-include-dir=${includedir}/c++/${BINV} \ " EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu" @@ -17,9 +15,11 @@ EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu" ARMFPARCHEXT ?= "" -EXTRA_OECONF_append_armv6 = " --with-arch=armv6${ARMFPARCHEXT}" -EXTRA_OECONF_append_armv7a = " --with-arch=armv7-a${ARMFPARCHEXT}" -EXTRA_OECONF_append_armv7ve = " --with-arch=armv7ve${ARMFPARCHEXT}" +EXTRA_OECONF_append_armv6_class-target = " --with-arch=armv6${ARMFPARCHEXT}" +EXTRA_OECONF_append_armv7a_class-target = " --with-arch=armv7-a${ARMFPARCHEXT}" +EXTRA_OECONF_append_armv7ve_class-target = " --with-arch=armv7ve${ARMFPARCHEXT}" +EXTRA_OECONF_append_arc_class-target = " --with-cpu=${TUNE_PKGARCH}" +EXTRA_OECONF_append_x86-64_class-target = " --with-arch=native" # libcc1 requres gcc_cv_objdump when cross build, but gcc_cv_objdump is # set in subdir gcc, so subdir libcc1 can't use it, export it here to @@ -138,6 +138,21 @@ FILES_${PN}-doc = "\ " do_compile () { + # Prevent full target sysroot path from being used in configargs.h header, + # as it will be rewritten when used by other sysroots preventing support + # for gcc plugins. Additionally the path is embeddeded into the output + # binary, this prevents building a reproducible binary. + oe_runmake configure-gcc + sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/configargs.h + sed -i 's@${STAGING_DIR_HOST}@/@g' ${B}/gcc/configargs.h + + # Prevent sysroot/workdir paths from being used in checksum-options. + # checksum-options is used to generate a checksum which is embedded into + # the output binary. + oe_runmake TARGET-gcc=checksum-options all-gcc + sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options + sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/checksum-options + oe_runmake all-host } @@ -165,6 +180,10 @@ do_install () { # Cleanup manpages.. rm -rf ${D}${mandir}/man7 + # Don't package details about the build host + rm -f ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/plugin/include/auto-build.h + rm -f ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/plugin/include/bconfig.h + cd ${D}${bindir} # We care about g++ not c++ @@ -173,10 +192,6 @@ do_install () { # We don't care about the gcc-<version> ones for this rm -f *gcc-?.?* - # We use libiberty from binutils - find ${D}${libdir} -name libiberty.a | xargs rm -f - find ${D}${libdir} -name libiberty.h | xargs rm -f - # Not sure why we end up with these but we don't want them... rm -f ${TARGET_PREFIX}${TARGET_PREFIX}* |