Browse Source

libgcc,gcc-runtime: align TARGET_SYS/EXTERNAL_TARGET_SYS

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Christopher Larson 9 years ago
parent
commit
b56cf21d51

+ 1 - 0
classes/external-toolchain.bbclass

@@ -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} \

+ 4 - 2
core/recipes-devtools/gcc/gcc_%.bbappend

@@ -1,7 +1,9 @@
-# unwind.h will come from libgcc-external, we don't want to try to pull it
-# from the cross area of the sysroot
+# 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))

+ 10 - 4
recipes-external/gcc/gcc-runtime-external.bb

@@ -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}"
@@ -85,15 +91,15 @@ FILES_libmudflap-dev = "${libdir}/libmudflap${SOLIBSDEV}"
 FILES_libmudflap-staticdev = "${libdir}/libmudflap.a"
 FILES_libquadmath = "${libdir}/libquadmath${SOLIBS}"
 FILES_libquadmath-dev = "${libdir}/libquadmath${SOLIBSDEV} \
-                         ${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/include/quadmath*"
+                         ${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/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/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} \
-                     ${libdir}/gcc/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/include/omp.h"
+                     ${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}"

+ 14 - 11
recipes-external/gcc/libgcc-external.bb

@@ -8,22 +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/${EXTERNAL_TARGET_SYS}/${GCC_VERSION}/include/unwind.h \
+                   ${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"