On 10/3/22 8:03 PM, Ravi Pokala wrote:
-----Original Message-----
From: <owner-src-committ...@freebsd.org> on behalf of John Baldwin
<j...@freebsd.org>
Date: 2022-10-03, Monday at 16:11
To: <src-committ...@freebsd.org>, <dev-commits-src-all@FreeBSD.org>,
<dev-commits-src-m...@freebsd.org>
Subject: git: 5e4854cbf8d8 - main - rescue: Link libzutil after libzfs.
The branch main has been updated by jhb:
URL:
https://cgit.FreeBSD.org/src/commit/?id=5e4854cbf8d8a9b056472967d15e1021d36fcae1
commit 5e4854cbf8d8a9b056472967d15e1021d36fcae1
Author: John Baldwin <j...@freebsd.org>
AuthorDate: 2022-10-03 23:10:42 +0000
Commit: John Baldwin <j...@freebsd.org>
CommitDate: 2022-10-03 23:10:42 +0000
rescue: Link libzutil after libzfs.
libzfs depends on symbols defined in libzutil. For static linking
ld.bfd is less forgiving than lld, so rescue was failing to link when
using ld.bfd due to unresolved symbols from libzutil used by libzfs.
You're solving an issue of unresolved symbols by putting the library where
they're defined *after* the library where they're used?
-Ravi (rpokala@)
Yes, that's normally how that works (you link libc last, not first). lld is
just
a bit different as it will look in earlier libraries to resolve symbols
(backwards
references) not just forward references. ld.bfd only does forward references by
default.
--
John Baldwin