installworld: handle ldd including preloaded objects

The installworld target makes a temporary copy of binaries to be used
during the install.  Libraries that they depend on are also included,
found by using `ldd`.

After commit 0913953c9e ldd started listing preloaded objects,
including [vdso], under a [preloaded] header.  Skip ldd output that is
enclosed in square brackets.

Reviewed by:	cy, kib [earlier version]
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D34734

(cherry picked from commit b3b462229f)
(cherry picked from commit e10026a406)

Approved by:	re (gjb)
This commit is contained in:
Ed Maste 2022-04-01 09:58:47 -04:00
parent b572edb09c
commit 7150099b3c
1 changed files with 4 additions and 0 deletions

View File

@ -1383,6 +1383,10 @@ distributeworld installworld stageworld: _installcheck_world .PHONY
if [ -z "${CROSSBUILD_HOST}" ] ; then \
libs=$$(ldd -f "%o %p\n" -f "%o %p\n" $$progs 2>/dev/null | sort -u | \
while read line; do \
case $$line in \
"["*"]") \
continue;; \
esac; \
set -- $$line; \
if [ "$$2 $$3" != "not found" ]; then \
echo $$2; \