]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc-cross-canadian: Install LTO linker plugin to BFD searchable location
authorKhem Raj <raj.khem@gmail.com>
Sun, 25 Apr 2021 19:08:28 +0000 (12:08 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 27 Apr 2021 14:11:43 +0000 (15:11 +0100)
This helps binutils provided tools ar/ranlib/nm to find the LTO linker
plugin automatically as well which makes it equivalent to gcc-ar/gcc-nm/gcc-ranlib

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/gcc/gcc-cross-canadian.inc

index d3875c94d346a65790aea53a4b23490ef9179c4c..878feaf8107022d093d3a15f3dcda7a2ae691d28 100644 (file)
@@ -75,6 +75,7 @@ FILES_${PN} = "\
     ${gcclibdir}/${TARGET_SYS}/${BINV}/include-fixed \
     ${gcclibdir}/${TARGET_SYS}/${BINV}/plugin/include/ \
     ${gcclibdir}/${TARGET_SYS}/${BINV}/plugin/gtype.* \
+    ${libdir}/bfd-plugins/*.so \
     ${includedir}/c++/${BINV} \
     ${prefix}/${TARGET_SYS}/bin/* \
     ${prefix}/${TARGET_SYS}/lib/* \
@@ -92,6 +93,8 @@ EXEEXT = ""
 
 # Compute how to get from libexecdir to bindir in python (easier than shell)
 BINRELPATH = "${@os.path.relpath(d.expand("${bindir}"), d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"))}"
+# linker plugin path
+LIBRELPATH = "${@os.path.relpath(d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"), d.expand("${libdir}/bfd-plugins"))}"
 
 do_install () {
        ( cd ${B}/${TARGET_SYS}/libgcc; oe_runmake 'DESTDIR=${D}' install-unwind_h-forbuild install-unwind_h )
@@ -136,8 +139,12 @@ do_install () {
        cp ${S}/libquadmath/quadmath.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
        cp ${S}/libquadmath/quadmath_weak.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
 
+       # install LTO linker plugins where binutils tools can find it
+       install -d ${D}${libdir}/bfd-plugins
+       ln -sf ${LIBRELPATH}/liblto_plugin.so ${D}${libdir}/bfd-plugins/liblto_plugin.so
+
        chown -R root:root ${D}
-       
+
        cross_canadian_bindirlinks
 
        for i in linux ${CANADIANEXTRAOS}