From ec8f5299d96d938b56c68d4ffa701b0c8a061de6 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 3 Aug 2010 20:04:33 +0100 Subject: [PATCH] cross-canadian: Move binaries into a subdirectory of bin to allow multimachine installs and update users accordingly Signed-off-by: Richard Purdie --- meta/classes/cross-canadian.bbclass | 6 ++++++ .../binutils/binutils-cross-canadian.inc | 8 +------- .../binutils/binutils-cross-canadian_2.20.1.bb | 2 +- meta/packages/gcc/gcc-cross-canadian_4.3.3.bb | 2 +- meta/packages/gcc/gcc-package-sdk.inc | 16 +++++++--------- meta/packages/meta/meta-toolchain.bb | 10 +++++----- 6 files changed, 21 insertions(+), 23 deletions(-) diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass index 9afdd619ea..72032367ef 100644 --- a/meta/classes/cross-canadian.bbclass +++ b/meta/classes/cross-canadian.bbclass @@ -49,6 +49,12 @@ target_exec_prefix := "${exec_prefix}" base_prefix = "${SDKPATHNATIVE}" prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" +bindir = "${exec_prefix}/bin/${OLD_MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}" +sbindir = "${bindir}" +base_bindir = "${bindir}" +base_sbindir = "${bindir}" +libdir = "${exec_prefix}/lib/${OLD_MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}" +libexecdir = "${exec_prefix}/libexec/${OLD_MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}" FILES_${PN} = "${prefix}" FILES_${PN}-dbg += "${prefix}/.debug \ diff --git a/meta/packages/binutils/binutils-cross-canadian.inc b/meta/packages/binutils/binutils-cross-canadian.inc index 04fa6e2de0..4953bc2c3b 100644 --- a/meta/packages/binutils/binutils-cross-canadian.inc +++ b/meta/packages/binutils/binutils-cross-canadian.inc @@ -6,15 +6,9 @@ EXTRA_OECONF = "--with-sysroot=${SDKPATH}/sysroots/${TARGET_SYS} \ do_install () { autotools_do_install - # Fix the ${prefix}/${TARGET_SYS}/bin/* files to be symlinks - rm ${D}${prefix}/${TARGET_SYS}/bin/.debug -Rf - rm ${D}${prefix}/${TARGET_SYS}/bin/* - for l in ${D}${bindir}/*; do - ln -sf "${bindir}/`basename $l`" "${D}${prefix}/${TARGET_SYS}/bin/`basename $l | sed -e 's,${TARGET_PREFIX},,'`" - done - # We're not interested in the libs or headers, these would come from the # nativesdk or target version of the binutils recipe + rm -rf ${D}${prefix}/${TARGET_SYS} rm -f ${D}${libdir}/libbfd* rm -f ${D}${libdir}/libiberty* rm -f ${D}${libdir}/libopcodes* diff --git a/meta/packages/binutils/binutils-cross-canadian_2.20.1.bb b/meta/packages/binutils/binutils-cross-canadian_2.20.1.bb index 13fc22aa64..f4a7a0e619 100644 --- a/meta/packages/binutils/binutils-cross-canadian_2.20.1.bb +++ b/meta/packages/binutils/binutils-cross-canadian_2.20.1.bb @@ -1,3 +1,3 @@ require binutils_${PV}.bb require binutils-cross-canadian.inc -PR = "r3" +PR = "r4" diff --git a/meta/packages/gcc/gcc-cross-canadian_4.3.3.bb b/meta/packages/gcc/gcc-cross-canadian_4.3.3.bb index 7cc202363e..981452b7a7 100644 --- a/meta/packages/gcc/gcc-cross-canadian_4.3.3.bb +++ b/meta/packages/gcc/gcc-cross-canadian_4.3.3.bb @@ -5,7 +5,7 @@ require gcc-cross-canadian.inc require gcc-configure-sdk.inc require gcc-package-sdk.inc -PR = "r16" +PR = "r17" DEPENDS += "gmp-nativesdk mpfr-nativesdk" RDEPENDS_${PN} += "mpfr-nativesdk" diff --git a/meta/packages/gcc/gcc-package-sdk.inc b/meta/packages/gcc/gcc-package-sdk.inc index cdce1da1c7..23b9a48eb3 100644 --- a/meta/packages/gcc/gcc-package-sdk.inc +++ b/meta/packages/gcc/gcc-package-sdk.inc @@ -7,10 +7,7 @@ PACKAGES = "${PN} ${PN}-doc" FILES_${PN} = "\ ${bindir}/* \ - ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/cc1 \ - ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/collect2 \ - ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/f771 \ - ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/cc1plus \ + ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/* \ ${gcclibdir}/${TARGET_SYS}/${BINV}/*.o \ ${gcclibdir}/${TARGET_SYS}/${BINV}/specs \ ${gcclibdir}/${TARGET_SYS}/${BINV}/lib* \ @@ -44,11 +41,12 @@ do_install () { rm -f ${D}${prefix}/${TARGET_SYS}/lib/libiberty.a rm -f ${D}${libdir}/libiberty.a - # Create the ${prefix}/${TARGET_SYS}/bin/* symlinks - install -d ${D}${prefix}/${TARGET_SYS}/bin/ - for l in ${D}${bindir}/*; do - ln -sf "${bindir}/`basename $l`" "${D}${prefix}/${TARGET_SYS}/bin/`basename $l | sed -e 's,${TARGET_PREFIX},,'`" + # Insert symlinks into libexec so when tools without a prefix are searched for, the correct ones are + # found. + dest=${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/ + install -d $dest + for t in ar as ld nm objcopy objdump ranlib strip g77 gcc cpp gfortran; do + ln -sf ${bindir}/${TARGET_PREFIX}$t $dest$t done - ln -sf "${bindir}/${TARGET_PREFIX}gcc" "${D}${prefix}/${TARGET_SYS}/bin/cc" } diff --git a/meta/packages/meta/meta-toolchain.bb b/meta/packages/meta/meta-toolchain.bb index fad9a3406a..a53569b55b 100644 --- a/meta/packages/meta/meta-toolchain.bb +++ b/meta/packages/meta/meta-toolchain.bb @@ -73,19 +73,19 @@ do_populate_sdk() { rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/*.la # Setup site file for external use - siteconfig=${SDK_OUTPUT}/${SDKPATH}/site-config-${TARGET_SYS} + siteconfig=${SDK_OUTPUT}/${SDKPATH}/site-config-${MULTIMACH_TARGET_SYS} touch $siteconfig for sitefile in ${CONFIG_SITE} ; do cat $sitefile >> $siteconfig done # Create environment setup script - script=${SDK_OUTPUT}/${SDKPATH}/environment-setup-${TARGET_SYS} + script=${SDK_OUTPUT}/${SDKPATH}/environment-setup-${MULTIMACH_TARGET_SYS} touch $script - echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:$PATH' >> $script + echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${bindir_nativesdk}/${MULTIMACH_TARGET_SYS}:$PATH' >> $script echo 'export PKG_CONFIG_SYSROOT_DIR=${SDKTARGETSYSROOT}' >> $script echo 'export PKG_CONFIG_PATH=${SDKTARGETSYSROOT}${libdir}/pkgconfig' >> $script - echo 'export CONFIG_SITE=${SDKPATH}/site-config-${TARGET_SYS}' >> $script + echo 'export CONFIG_SITE=${SDKPATH}/site-config-${MULTIMACH_TARGET_SYS}' >> $script echo 'export CC=${TARGET_PREFIX}gcc' >> $script echo 'export CXX=${TARGET_PREFIX}g++' >> $script echo 'export CONFIGURE_FLAGS="--target=${TARGET_SYS} --host=${TARGET_SYS} --build=${SDK_ARCH}-linux"' >> $script @@ -102,7 +102,7 @@ do_populate_sdk() { echo "alias opkg-target='LD_LIBRARY_PATH=${SDKPATHNATIVE}${libdir_nativesdk} ${SDKPATHNATIVE}${bindir_nativesdk}/opkg-cl -f ${SDKTARGETSYSROOT}${sysconfdir}/opkg.conf -o ${SDKTARGETSYSROOT}'" >> $script # Add version information - versionfile=${SDK_OUTPUT}/${SDKPATH}/version-${TARGET_SYS} + versionfile=${SDK_OUTPUT}/${SDKPATH}/version-${MULTIMACH_TARGET_SYS} touch $versionfile echo 'Distro: ${DISTRO}' >> $versionfile echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile