Merge pull request #65 from kergoth/target-gcc-fixups

Some target gcc fixups
This commit is contained in:
Christopher Larson
2015-04-14 09:17:21 -07:00
4 changed files with 43 additions and 15 deletions

View File

@@ -23,6 +23,7 @@ LICENSE = "CLOSED"
LIC_FILES_CHKSUM = "${COMMON_LIC_CHKSUM}"
EXTERNAL_TOOLCHAIN_SYSROOT ?= "${@external_run(d, 'gcc', *(TARGET_CC_ARCH.split() + ['-print-sysroot'])).rstrip()}"
EXTERNAL_TOOLCHAIN_LIBROOT ?= "${@external_run(d, 'gcc', *(TARGET_CC_ARCH.split() + ['-print-file-name=crtbegin.o'])).rstrip().replace('/crtbegin.o', '')}"
EXTERNAL_INSTALL_SOURCE_PATHS = "\
${EXTERNAL_TOOLCHAIN_SYSROOT} \
@@ -163,7 +164,11 @@ def expand_paths(pathnames, mirrors):
expanded_paths = [pathname]
for search, replace in mirrors:
new_pathname = re.sub(search, replace, pathname, count=1)
try:
new_pathname = re.sub(search, replace, pathname, count=1)
except re.error as exc:
bb.warn("Invalid pattern for `%s`" % search)
continue
if new_pathname != pathname:
expanded_paths.append(new_pathname)

View File

@@ -0,0 +1,10 @@
# FIXME: resolve gcc version mismatch issues with ${libdir}/gcc/*/<version>
# filesystem paths
python () {
if d.getVar('TCMODE', True).startswith('external-sourcery'):
# unwind.h will come from libgcc-external, we don't want to try to pull it
# from the cross area of the sysroot
inst = d.getVar('do_install', False).splitlines()
inst = filter(lambda l: not ('unwind.h' in l and '${STAGING_LIBDIR_NATIVE}' in l), inst)
d.setVar('do_install', '\n'.join(inst))
}

View File

@@ -54,9 +54,15 @@ PACKAGES =+ "\
SUMMARY_libitm = "The Transactional Memory runtime library"
SUMMARY_libitm-dev = "${SUMMARY_libitm} - development files"
external_libroot = "${@os.path.realpath('${EXTERNAL_TOOLCHAIN_LIBROOT}').replace(os.path.realpath('${EXTERNAL_TOOLCHAIN}') + '/', '/')}"
FILES_MIRRORS =. "\
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/|${external_libroot}/\n \
${includedir}/c\+\+/${GCC_VERSION}/${TARGET_SYS}/|${includedir}/c++/${GCC_VERSION}/${EXTERNAL_TARGET_SYS}/\n \
"
FILES_libstdc++ = "${libdir}/libstdc++${SOLIBS}"
FILES_libstdc++-dev = "${libdir}/libstdc++${SOLIBSDEV} \
${includedir}/c++/${GCC_VERSION}"
${includedir}/c++/${GCC_VERSION}/${TARGET_SYS}"
FILES_libstdc++-staticdev = "${libdir}/libstdc++.a \
${libdir}/libsupc++.a"
FILES_libatomic = "${libdir}/libatomic${SOLIBS}"
@@ -84,14 +90,16 @@ FILES_libmudflap = "${libdir}/libmudflap${SOLIBS}"
FILES_libmudflap-dev = "${libdir}/libmudflap${SOLIBSDEV}"
FILES_libmudflap-staticdev = "${libdir}/libmudflap.a"
FILES_libquadmath = "${libdir}/libquadmath${SOLIBS}"
FILES_libquadmath-dev = "${libdir}/libquadmath${SOLIBSDEV}"
FILES_libquadmath-dev = "${libdir}/libquadmath${SOLIBSDEV} \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/include/quadmath*"
FILES_libquadmath-staticdev = "${libdir}/libquadmath.a"
FILES_libssp = "${libdir}/libssp${SOLIBS}"
FILES_libssp-dev = "${libdir}/libssp${SOLIBSDEV} \
${libdir}/gcc/*/*/include/ssp"
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/include/ssp"
FILES_libssp-staticdev = "${libdir}/libssp.a"
FILES_libgomp = "${libdir}/libgomp${SOLIBS}"
FILES_libgomp-dev = "${libdir}/libgomp${SOLIBSDEV}"
FILES_libgomp-dev = "${libdir}/libgomp${SOLIBSDEV} \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/include/omp.h"
FILES_libgomp-staticdev = "${libdir}/libgomp.a"
FILES_libitm = "${libdir}/libitm${SOLIBS}"
FILES_libitm-dev = "${libdir}/libitm${SOLIBSDEV}"

View File

@@ -8,20 +8,25 @@ inherit external-toolchain
PACKAGES =+ "libgcov-dev"
external_libroot = "${@os.path.realpath('${EXTERNAL_TOOLCHAIN_LIBROOT}').replace(os.path.realpath('${EXTERNAL_TOOLCHAIN}') + '/', '/')}"
FILES_MIRRORS =. "${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/|${external_libroot}/\n"
FILES_${PN} = "${base_libdir}/libgcc_s.so.*"
FILES_${PN}-dev = "${base_libdir}/libgcc_s.so \
${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/crtbegin.o \
${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/crtbeginS.o \
${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/crtbeginT.o \
${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/crtend.o \
${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/crtendS.o \
${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/crtfastmath.o \
${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/crtprec*.o \
${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/libgcc.a \
${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/libgcc_eh.a"
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/crtbegin.o \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/crtbeginS.o \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/crtbeginT.o \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/crtend.o \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/crtendS.o \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/crtfastmath.o \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/crtprec*.o \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/libgcc.a \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/libgcc_eh.a \
${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/include/unwind.h \
"
INSANE_SKIP_${PN}-dev += "staticdev"
FILES_${PN}-dbg += "${base_libdir}/.debug/libgcc_s.so.*.debug"
FILES_libgcov-dev = "${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/libgcov.a"
FILES_libgcov-dev = "${libdir}/gcc/${TARGET_SYS}/${GCC_VERSION}/libgcov.a"
INSANE_SKIP_libgcov-dev += "staticdev"