tools/elfutils: only build required components

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>
This commit is contained in:
Stijn Tintel 2022-05-19 01:53:49 +03:00 committed by AmadeusGhost
parent 75c72b7920
commit 0dc61a0d37

View 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))