git: 06c24143c4af - stable/12 - Default to using lld for arm.arm, but disable fatal linker warnings
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 22 Dec 2021 10:06:44 UTC
The branch stable/12 has been updated by dim:
URL: https://cgit.FreeBSD.org/src/commit/?id=06c24143c4af8a10a65abd9f310feeb05a0d14e3
commit 06c24143c4af8a10a65abd9f310feeb05a0d14e3
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2021-12-22 09:51:44 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2021-12-22 10:01:34 +0000
Default to using lld for arm.arm, but disable fatal linker warnings
Since BFD ld 2.17.50 cannot cope with the output of clang 11 and higher,
due to some object files getting more than 65k sections, we need to use
lld 11 and higher instead.
However, this results in warnings from lld: "lld uses blx instruction,
no object with architecture supporting feature detected". At the moment
we think it is safe to ignore this warning, so add a check to bsd.lib.mk
to make them non-fatal by default for arm.arm.
---
share/mk/bsd.lib.mk | 3 ++-
share/mk/src.opts.mk | 4 ++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index d99360f0e2bf..69b64200e47f 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -280,7 +280,8 @@ CLEANFILES+= ${SOBJS}
_LIBS+= ${SHLIB_NAME}
SOLINKOPTS+= -shared -Wl,-x
-.if defined(LD_FATAL_WARNINGS) && ${LD_FATAL_WARNINGS} == "no"
+.if (defined(LD_FATAL_WARNINGS) && ${LD_FATAL_WARNINGS} == "no") || \
+ (!defined(LD_FATAL_WARNINGS) && ${MACHINE_ARCH} == "arm")
SOLINKOPTS+= -Wl,--no-fatal-warnings
.else
SOLINKOPTS+= -Wl,--fatal-warnings
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
index 4fd16579f863..2531f0d43264 100644
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -329,8 +329,8 @@ __DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND
.else
__DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND
.endif
-.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "armv6" || \
- ${__T} == "armv7" || ${__T} == "i386" || ${__TT} == "riscv"
+.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__TT} == "arm" || \
+ ${__T} == "i386" || ${__TT} == "riscv"
__DEFAULT_YES_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD
.else
__DEFAULT_NO_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD