On 10/3/22 8:03 PM, Ravi Pokala wrote:
-----Original Message----- From: <[email protected]> on behalf of John Baldwin <[email protected]> Date: 2022-10-03, Monday at 16:11 To: <[email protected]>, <[email protected]>, <[email protected]> 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 <[email protected]> AuthorDate: 2022-10-03 23:10:42 +0000 Commit: John Baldwin <[email protected]> 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
