poky/meta/recipes-devtools/binutils/binutils_2.33.bb
Richard Purdie 477aeb4e5b binutils: Fix relocation of ld.so.conf in nativesdk builds
We need binutils to look at our ld.so.conf file within the SDK to ensure
we search the SDK's libdirs as well as those from the host system.

There add a patch which passes in the directory to the code using a define,
then add it to a section we relocate in a similar way to the way we relocate
the gcc internal paths. This ensures that ld works correctly in our buildtools
tarball.

Standard sysroot relocation doesn't work since we're not in a sysroot,
we want to use both the host system and SDK libs.

(From OE-Core rev: f6c1089642934ad93056ef19a0888965486ee030)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-22 15:56:14 +00:00

58 lines
1.8 KiB
BlitzBasic

require binutils.inc
require binutils-${PV}.inc
DEPENDS += "flex bison zlib"
EXTRA_OECONF += "--with-sysroot=/ \
--enable-install-libbfd \
--enable-install-libiberty \
--enable-shared \
--with-system-zlib \
"
EXTRA_OEMAKE_append_libc-musl = "\
gt_cv_func_gnugettext1_libc=yes \
gt_cv_func_gnugettext2_libc=yes \
"
EXTRA_OECONF_class-native = "--enable-targets=all \
--enable-64-bit-bfd \
--enable-install-libiberty \
--enable-install-libbfd \
--disable-werror"
# gcc9.0 end up mis-compiling libbfd.so with O2 which then crashes on target
# So remove -O2 and use -Os as workaround
SELECTED_OPTIMIZATION_remove_mipsarch = "-O2"
SELECTED_OPTIMIZATION_append_mipsarch = " -Os"
do_install_class-native () {
autotools_do_install
# Install the libiberty header
install -d ${D}${includedir}
install -m 644 ${S}/include/ansidecl.h ${D}${includedir}
install -m 644 ${S}/include/libiberty.h ${D}${includedir}
# We only want libiberty, libbfd and libopcodes
rm -rf ${D}${bindir}
rm -rf ${D}${prefix}/${TARGET_SYS}
rm -rf ${D}${prefix}/lib/ldscripts
rm -rf ${D}${prefix}/share/info
rm -rf ${D}${prefix}/share/locale
rm -rf ${D}${prefix}/share/man
rmdir ${D}${prefix}/share || :
rmdir ${D}/${libdir}/gcc-lib || :
rmdir ${D}/${libdir}64/gcc-lib || :
rmdir ${D}/${libdir} || :
rmdir ${D}/${libdir}64 || :
}
# Split out libbfd-*.so so including perf doesn't include extra stuff
PACKAGE_BEFORE_PN += "libbfd"
FILES_libbfd = "${libdir}/libbfd-*.so"
SRC_URI_append_class-nativesdk = "file://nativesdk-relocation.patch"
BBCLASSEXTEND = "native nativesdk"