Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Sep 2021 10:31:31 GMT
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 6d8f2277dee6 - stable/13 - i386 loaders: avoid lld 13 garbage collecting linker sets
Message-ID:  <202109151031.18FAVVmo041707@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=6d8f2277dee6ea50b6567fc6ce6816ba02362ae9

commit 6d8f2277dee6ea50b6567fc6ce6816ba02362ae9
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2021-09-08 12:04:13 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2021-09-15 10:28:44 +0000

    i386 loaders: avoid lld 13 garbage collecting linker sets
    
    Because lld 13 and higher default to garbage collecting start/stop
    symbols when using --gc-sections, the linker sets used in the i386 boot
    loaders will disappear. This leads to the loaders not recognizing any
    commands, and failure to boot.
    
    Until we have a good set of linker scripts for the loaders, work around
    it by disabling the start-stop-gc feature.
    
    (cherry picked from commit c90cab0d668af5d947054e47184d4f8dcb874ec8)
---
 stand/i386/loader/Makefile | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/stand/i386/loader/Makefile b/stand/i386/loader/Makefile
index 0abf6120c1e3..571e3b2cb653 100644
--- a/stand/i386/loader/Makefile
+++ b/stand/i386/loader/Makefile
@@ -61,6 +61,12 @@ ORG=		0x0
 
 CFLAGS+=	-Wall
 LDFLAGS+=	-static ${LDFLAGS_ORG} -Wl,--gc-sections
+.if ${LINKER_TYPE} == "lld" && ${LINKER_VERSION} >= 130000
+# lld 13 and higher default to garbage collecting start/stop symbols,
+# completely ruining our linker sets. For now, work around it by
+# disabling this un-feature.
+LDFLAGS+=	-Wl,-z,nostart-stop-gc
+.endif
 
 # i386 standalone support library
 LIBI386=	${BOOTOBJ}/i386/libi386/libi386.a



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202109151031.18FAVVmo041707>