I'm seeing the following issue when trying to link some lang/go executables on aarch64:
Should not have claimed to be relaxable
UNREACHABLE executed at /usr/src/contrib/llvm/tools/lld/ELF/Target.cpp:176!
cc: error: unable to execute command: Abort trap (core dumped)
cc: error: linker command failed due to signal (use -v to see invocation)
It seems to only be an issue with ld.lld from base/13-current. It works fine with lld from devel/llvm* and surprisingly it also works with ld.lld from base/12-stable.
If someone wants to look into it, I put a tarball and a build script to reproduce the issue:
Would you add lld --version info from the working/non-working cases? Most likely this will become an upstream lld bug report.
Here are the results:
ld.lld from ports:
LLD 6.0.1 (compatible with GNU linkers)
LLD 7.0.1 (compatible with GNU linkers)
LLD 8.0.0 (compatible with GNU linkers)
ld.lld from base:
LLD 6.0.1 (FreeBSD 335540-1200005) (compatible with GNU linkers)
12-stable (from a few days ago, for FreeBSD 12.0 (1200507))
LLD 8.0.0 (FreeBSD 356365-1200007) (compatible with GNU linkers)
13-current (from a few days ago, for FreeBSD 13.0 (1300021))
LLD 8.0.0 (FreeBSD 356365-1300003) (compatible with GNU linkers)
The only failure is with ld.lld from base/13-current.
(In reply to mikael.urankar from comment #2)
It seems to be a problem with debug build of clang/lld, it works on head with this (ie, same as the release or stable branch):
--- lib/clang/llvm.build.mk (revision 345171)
+++ lib/clang/llvm.build.mk (working copy)
@@ -17,7 +17,7 @@