diff options
Diffstat (limited to 'packages/gcc')
-rw-r--r-- | packages/gcc/gcc-package-sdk.inc | 64 | ||||
-rw-r--r-- | packages/gcc/gcc4-build-sdk.inc | 38 |
2 files changed, 79 insertions, 23 deletions
diff --git a/packages/gcc/gcc-package-sdk.inc b/packages/gcc/gcc-package-sdk.inc index c3ba231678..635ab6d1f4 100644 --- a/packages/gcc/gcc-package-sdk.inc +++ b/packages/gcc/gcc-package-sdk.inc @@ -1,18 +1,58 @@ -# Packages emitted by our gcc-cross builds. # +# Note gcc-package.inc was already included before us. +# +# We override PACKAGES and FILES to change the packaging +# + INHIBIT_PACKAGE_STRIP ?= "" +HAS_G2C ?= "yes" +HAS_GFORTRAN ?= "no" OLD_INHIBIT_PACKAGE_STRIP := "${INHIBIT_PACKAGE_STRIP}" INHIBIT_PACKAGE_STRIP = "1" -python do_package() { - if bb.data.getVar('DEBIAN_NAMES', d, 1): - bb.data.setVar('PKG_libgcc', 'libgcc1', d) - bb.build.exec_func('package_do_package', d) -} +# Having anything auto depending on gcc-cross-sdk is a really bad idea... +EXCLUDE_FROM_SHLIBS = "1" + +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 \ + ${gcclibdir}/${TARGET_SYS}/${BINV}/*.o \ + ${gcclibdir}/${TARGET_SYS}/${BINV}/specs \ + ${gcclibdir}/${TARGET_SYS}/${BINV}/lib* \ + ${gcclibdir}/${TARGET_SYS}/${BINV}/include \ + ${includedir}/c++/${BINV} \ + ${prefix}/${TARGET_SYS}/bin/* \ + ${prefix}/${TARGET_SYS}/lib/* \ + " do_install () { oe_runmake 'DESTDIR=${D}' install + # Cleanup some of the ${libdir}{,exec}/gcc stuff ... + rm -r ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/install-tools + rm -r ${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/install-tools + + # We care about g++ not c++ + rm -f ${D}${bindir}/*c++ + + # We don't care about the gcc-<version> copies + rm -f ${D}${bindir}/*gcc-?.?* + + # We use libiberty from binutils + 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},,'`" + done + ln -sf "${bindir}/${TARGET_PREFIX}gcc" "${D}${prefix}/${TARGET_SYS}/bin/cc" + # Manually run the target stripper since we won't get it run by # the packaging. if [ "x${OLD_INHIBIT_PACKAGE_STRIP}" != "x1" ]; then @@ -22,15 +62,3 @@ do_install () { fi } -FILES_libgcc = "${prefix}/${TARGET_SYS}/lib/libgcc*.so.*" -FILES_libgcc-dev = "${prefix}/${TARGET_SYS}/lib/libgcc*.so" - -FILES_libstdc++ = "${prefix}/${TARGET_SYS}/lib/libstdc++.so.*" -FILES_libstdc++-dev = "${includedir}/c++/${BINV} \ - ${prefix}/${TARGET_SYS}/lib/libstdc++.so \ - ${prefix}/${TARGET_SYS}/lib/libstdc++.a \ - ${prefix}/${TARGET_SYS}/lib/libsupc++.a" - -FILES_libmudflap = "${prefix}/${TARGET_SYS}/lib/libmudflap*.so.*" -FILES_libmudflap-dev = "${prefix}/${TARGET_SYS}/lib/libmudflap*.so \ - ${prefix}/${TARGET_SYS}/lib/libmudflap*.a" diff --git a/packages/gcc/gcc4-build-sdk.inc b/packages/gcc/gcc4-build-sdk.inc index d6af5fe933..b66c716505 100644 --- a/packages/gcc/gcc4-build-sdk.inc +++ b/packages/gcc/gcc4-build-sdk.inc @@ -1,12 +1,40 @@ USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}' USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d )}' -EXTRA_OECONF += "--with-sysroot=${prefix}/${TARGET_SYS} --with-build-sysroot=${STAGING_DIR_TARGET}" +EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \ + --with-gxx-include-dir=${STAGING_DIR_TARGET}/${layout_includedir}/c++ \ + --with-sysroot=${prefix}/${TARGET_SYS} \ + --with-build-sysroot=${STAGING_DIR_TARGET}" + +# +# gcc-cross looks and finds these in ${exec_prefix} but we're not so lucky +# for the sdk. Hardcoding the paths ensures the build doesn't go canadian or worse. +# +export AR_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/ar" +export AS_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/as" +export DLLTOOL_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/dlltool" +export LD_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/ld" +export LIPO_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/lipo" +export NM_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/nm" +export OBJDUMP_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/objdump" +export RANLIB_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/ranlib" +export STRIP_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/strip" +export WINDRES_FOR_TARGET = "${CROSS_DIR}/${TARGET_SYS}/bin/windres" + +# +# We need to override this and make sure the compiler can find staging +# +export ARCH_FLAGS_FOR_TARGET = "--sysroot=/media/build1/builds/oe/angstrom/tmp/staging/arm-angstrom-linux-gnueabi" do_configure () { - (cd ${S} && gnu-configize) || die "failure running gnu-configize" - (cd ${S}/libstdc++-v3 && autoreconf) - oe_runconf + export CC_FOR_BUILD="${BUILD_CC}" + export CXX_FOR_BUILD="${BUILD_CXX}" + export CFLAGS_FOR_BUILD="${BUILD_CFLAGS}" + export CPPFLAGS_FOR_BUILD="${BUILD_CPPFLAGS}" + export CXXFLAGS_FOR_BUILD="${BUILD_CXXFLAGS}" + export LDFLAGS_FOR_BUILD="${BUILD_LDFLAGS}" + (cd ${S} && gnu-configize) || die "failure running gnu-configize" + oe_runconf } do_compile () { @@ -16,5 +44,5 @@ do_compile () { export LD_FOR_TARGET="${TARGET_SYS}-ld" export NM_FOR_TARGET="${TARGET_SYS}-nm" export CC_FOR_TARGET="${CCACHE} ${TARGET_SYS}-gcc ${TARGET_CC_ARCH}" - oe_runmake + base_do_compile } |