Files
poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc
Richard Purdie 48527d4ff3 gcc-cross-initial: Remove unneeded temporary sysroot
We used to need to build gcc-cross-initial against a bare sysroot to avoid
contamination. With RSS, we no longer need to do this since the recipe sysroot
is already bare. We can therefore simply point at that and drop this code.

(From OE-Core rev: f70603887f823c14030bb738c4951d7aa3f022db)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-09 10:52:03 +00:00

85 lines
3.2 KiB
PHP

DEPENDS = "virtual/${TARGET_PREFIX}binutils ${NATIVEDEPS}"
PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
PACKAGES = ""
INHIBIT_AUTOTOOLS_DEPS = "1"
INHIBIT_DEFAULT_DEPS = "1"
# We still need gnu-config-native
DEPENDS_prepend = "gnu-config-native autoconf-native "
PN = "gcc-cross-initial-${TARGET_ARCH}"
CROSS_TARGET_SYS_DIR_append = ".${PN}"
# This is intended to be a -very- basic config
# sysroot is needed in case we use libc-initial
EXTRA_OECONF = "\
--with-newlib \
--without-headers \
--disable-shared \
--disable-threads \
--disable-multilib \
--disable-__cxa_atexit \
--enable-languages=c \
--program-prefix=${TARGET_PREFIX} \
--with-sysroot=/not/exist \
--with-build-sysroot=${STAGING_DIR_TARGET} \
${EXTRA_OECONF_INITIAL} \
${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--with-ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)} \
${EXTRA_OECONF_GCC_FLOAT} \
${@get_gcc_ppc_plt_settings(bb, d)} \
"
EXTRA_OECONF += "--with-native-system-header-dir=${SYSTEMHEADERS}"
do_compile () {
oe_runmake all-gcc configure-target-libgcc
}
do_install () {
( cd ${B}/${TARGET_SYS}/libgcc; oe_runmake 'DESTDIR=${D}' install-unwind_h )
oe_runmake 'DESTDIR=${D}' install-gcc
# We don't really need this (here shares/ contains man/, info/, locale/).
rm -rf ${D}${datadir}/
# We use libiberty from binutils
find ${D}${exec_prefix}/lib -name libiberty.a | xargs rm -f
find ${D}${exec_prefix}/lib -name libiberty.h | xargs rm -f
# Insert symlinks into libexec so when tools without a prefix are searched for, the correct ones are
# found. These need to be relative paths so they work in different locations.
dest=${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/
install -d $dest
useld=${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '.bfd', '', d)}
ln -sf ${BINRELPATH}/${TARGET_PREFIX}ld${useld} ${dest}ld
for t in ar as nm objcopy objdump ranlib strip g77 gcc cpp gfortran; do
ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t $dest$t
done
# fixed limits.h infact includes the so called real limits.h
# which should come from libc but when we build libc-initial
# then bunch of configure tests include fixed limits.h which in turn
# includes real limits.h but this real limits.h is not staged yet
# so we overwirte the generated include-fixed/limits.h for gcc-cross-initial
# to get rid references to real limits.h
cp gcc/include-fixed/limits.h ${D}${gcclibdir}/${TARGET_SYS}/${BINV}/include/limits.h
}
#
# Override the default sysroot staging copy since this won't look like a target system
#
sysroot_stage_all() {
sysroot_stage_dir ${D} ${SYSROOT_DESTDIR}
install -d ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${target_base_libdir}/
install -d ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${target_libdir}/
mv ${SYSROOT_DESTDIR}${target_base_libdir}/* ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${target_base_libdir}/ || true
mv ${SYSROOT_DESTDIR}${target_libdir}/* ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${target_libdir}/ || true
}
do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_HOST}/"
do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR}-components/${PACKAGE_ARCH}/${PN}"
inherit nopackages
COMPILERINITIAL = "-initial"