tools/elfutils: only build required components
authorStijn Tintel <stijn@linux-ipv6.be>
Wed, 18 May 2022 22:53:49 +0000 (01:53 +0300)
committerStijn Tintel <stijn@linux-ipv6.be>
Wed, 18 May 2022 23:36:48 +0000 (02:36 +0300)
Building all of the components results in strip being installed in
staging_dir/host/bin. This strip binary will take precedence over
binutils strip that is installed in the toolchain directory.

This will not work on host systems that do not have libdw installed, as
we do not set HOST_LDFLAGS to override rpath to staging_dir/host/lib.
However, rather than overriding rpath, we should just avoid using
elfutils strip entirely.

Override the SUBDIRS variable in the Makefile to only build and install
the libraries we require for dwarves and frr.

Fixes the following build failure in toolchain/gdb:
strip: error while loading shared libraries: libdw.so.1: cannot open shared object file: No such file or directory

Fixes: ad79b9271949 ("elfutils: move host build to tools")
Reported-by: Dominick Grift <dominick.grift@defensec.nl>
Reported-by: Lucian Cristian <lucian.cristian@gmail.com>
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
tools/elfutils/Makefile

index 98694beb0effc2acd98d7466f11a9e42952fabab..2f4dd8f25303c8e51e9e20c017c5586106339026 100644 (file)
@@ -29,4 +29,7 @@ HOST_CONFIGURE_ARGS += \
        --without-lzma \
        --without-zstd
 
+HOST_MAKE_FLAGS += \
+       SUBDIRS="lib libelf libcpu backends libebl libdwelf libdwfl libdw"
+
 $(eval $(call HostBuild))