Index | Thread | Search

From:
Klemens Nanni <kn@openbsd.org>
Subject:
binutils: enable ld.bfd ?
To:
ports <ports@openbsd.org>, Frederic Cambus <fcambus@openbsd.org>
Date:
Thu, 20 Nov 2025 08:37:47 +0000

Download raw body.

Thread
net/ipxe in openbsd-wip seems to require the GNU linker.

2.17 from base just segfaults (certainly too old) and ld.lld(1) complains
differently, depending on what/how I build stuff:

- ld: error: section .text file range overlaps with .shstrtab
- ld: error: output file too large: 18446744073709485768 bytes

When using gld built with the diff below, ipxe.efi links fine.


Is there a reason disable it?
If udesirable by default, but a FLAVOR be acceptable that is not hooked up,
but can be depended upon in ports like ipxe needing it?


Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/binutils/Makefile,v
diff -u -p -r1.21 Makefile
--- Makefile	19 Oct 2025 23:54:27 -0000	1.21
+++ Makefile	20 Nov 2025 08:30:38 -0000
@@ -2,7 +2,7 @@ COMMENT =	GNU binary utilities
 
 # keep version synchronized with devel/gas
 DISTNAME =	binutils-2.45
-REVISION =	0
+REVISION =	1
 EXTRACT_SUFX =	.tar.bz2
 
 CATEGORIES =	devel
@@ -28,7 +28,6 @@ CONFIGURE_STYLE =	gnu
 
 CONFIGURE_ARGS +=	--disable-gas \
 			--disable-gprof \
-			--disable-ld \
 			--disable-libctf \
 			--disable-nls \
 			--disable-install-libbfd \
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/binutils/pkg/PLIST,v
diff -u -p -r1.4 PLIST
--- pkg/PLIST	24 Sep 2025 17:03:55 -0000	1.4
+++ pkg/PLIST	20 Nov 2025 08:30:38 -0000
@@ -3,6 +3,8 @@
 @bin bin/gar
 @bin bin/gc++filt
 @bin bin/gelfedit
+@bin bin/gld
+@bin bin/gld.bfd
 @bin bin/gnm
 @bin bin/gobjcopy
 @bin bin/gobjdump
@@ -12,12 +14,17 @@
 @bin bin/gstrings
 @bin bin/gstrip
 @info info/binutils.info
+@info info/ld.info
+@info info/ldint.info
 @info info/sframe-spec.info
+lib/bfd-plugins/
+@so lib/bfd-plugins/libdep.so
 @man man/man1/gaddr2line.1
 @man man/man1/gar.1
 @man man/man1/gc++filt.1
 @comment @man man/man1/gdlltool.1
 @man man/man1/gelfedit.1
+@man man/man1/gld.1
 @man man/man1/gnm.1
 @man man/man1/gobjcopy.1
 @man man/man1/gobjdump.1