git: 78661696e639 - main - loader: i386: use -z nostart-stop-gc for bfd as well

From: Kyle Evans <kevans_at_FreeBSD.org>
Date: Thu, 08 May 2025 19:47:22 UTC
The branch main has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=78661696e639836c9c41313020308f132057189a

commit 78661696e639836c9c41313020308f132057189a
Author:     Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2025-05-08 19:47:16 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2025-05-08 19:47:16 +0000

    loader: i386: use -z nostart-stop-gc for bfd as well
    
    binutils 2.37 seems to have added the knob, so let's just use that
    version here (it's not clear if GC'ing start/stop symbols was actually
    made the default at the time, and it didn't seem worth it to dig much
    further).  This fixes misbehavior when built with more recent binutils,
    as we do rely on linker sets for loader commands that we use.
    
    Reported by:    sjg
    Reviewed by:    dim, sjg
    Differential Revision:  https://reviews.freebsd.org/D50252
---
 stand/i386/loader/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/stand/i386/loader/Makefile b/stand/i386/loader/Makefile
index bb9111c3dcce..e1f0298403b3 100644
--- a/stand/i386/loader/Makefile
+++ b/stand/i386/loader/Makefile
@@ -90,7 +90,8 @@ ORG=		0x0
 
 CFLAGS+=	-Wall
 LDFLAGS+=	-static ${LDFLAGS_ORG} -Wl,--gc-sections
-.if ${LINKER_TYPE} == "lld" && ${LINKER_VERSION} >= 130000
+.if (${LINKER_TYPE} == "lld" && ${LINKER_VERSION} >= 130000) || \
+    (${LINKER_TYPE} == "bfd" && ${LINKER_VERSION} >= 23700)
 # 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.