30.11.2025 16:30, Frederic Cambus пишет:
> On Sat, Nov 29, 2025 at 08:17:19PM +0000, Klemens Nanni wrote:
> 
>>> 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 yes, would a FLAVOR (that is not hooked up) and/or enabling it
>> only for amd64 and arm64 (none other needed, atm) be acceptable?
> 
> There was simply no use-case for it, because as far as I remember it is
> not going to produce working OpenBSD executables.
> 
> Adding a FLAVOR would probably be overkill, but as it will only be useful
> to build net/ipxe on amd64 and arm64 I think it indeed makes sense to only
> enable building ld on these architectures.

Sure, that looks like this.

Feedback? OK?

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/binutils/Makefile,v
diff -u -p -r1.23 Makefile
--- Makefile    29 Nov 2025 18:11:04 -0000      1.23
+++ Makefile    30 Nov 2025 14:04:55 -0000
@@ -3,7 +3,7 @@ COMMENT =       GNU binary utilities
 # keep version synchronized with devel/gas
 V =            2.45.1
 DISTNAME =     binutils-${V}
-REVISION =     0
+REVISION =     1
 
 CATEGORIES =   devel
 
@@ -28,13 +28,21 @@ CONFIGURE_STYLE =   gnu
 
 CONFIGURE_ARGS +=      --disable-gas \
                        --disable-gprof \
-                       --disable-ld \
                        --disable-libctf \
                        --disable-nls \
                        --disable-install-libbfd \
                        --program-prefix=g \
                        --without-msgpack \
                        --with-system-zlib
+
+LD_ARCHS =             aarch64 \
+                       amd64
+SUBST_VARS =           LD_ARCHS
+.if ${LD_ARCHS:M${MACHINE_ARCH}}
+PKG_ARGS =             -Dld=1
+.else
+CONFIGURE_ARGS +=      --disable-ld
+.endif
 
 USE_GMAKE =    Yes
 
Index: patches/patch-ld_configure_tgt
===================================================================
RCS file: patches/patch-ld_configure_tgt
diff -N patches/patch-ld_configure_tgt
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-ld_configure_tgt      30 Nov 2025 14:01:55 -0000
@@ -0,0 +1,15 @@
+recognise arm64
+
+Index: ld/configure.tgt
+--- ld/configure.tgt.orig
++++ ld/configure.tgt
+@@ -98,6 +98,9 @@ aarch64-*-freebsd*)  targ_emul=aarch64fbsd
+ aarch64-*-fuchsia*)   targ_emul=aarch64elf
+                       targ_extra_emuls="aarch64elfb armelf armelfb"
+                       ;;
++aarch64-*-openbsd*)   targ_emul=aarch64obsd
++                      targ_extra_emuls="aarch64obsdb aarch64elf"
++                      ;;
+ aarch64_be-*-linux-gnu_ilp32)
+                       targ_emul=aarch64linux32b
+                       targ_extra_libpath="aarch64linuxb aarch64linux 
aarch64linux32 armelfb_linux_eabi armelf_linux_eabi"
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/devel/binutils/pkg/DESCR,v
diff -u -p -r1.1.1.1 DESCR
--- pkg/DESCR   7 Aug 2022 20:44:09 -0000       1.1.1.1
+++ pkg/DESCR   30 Nov 2025 14:04:29 -0000
@@ -4,6 +4,7 @@ This package contains the following GNU 
 - ar - A utility for creating, modifying and extracting from archives.
 - c++filt - Filter to demangle encoded C++ symbols.
 - elfedit - Update ELF header and program property of ELF files.
+- ld - Links files.  (only on ${LD_ARCHS})
 - nm - Lists symbols from object files.
 - objcopy - Copies and translates object files.
 - objdump - Displays information from object files.
Index: pkg/PFRAG.ld
===================================================================
RCS file: pkg/PFRAG.ld
diff -N pkg/PFRAG.ld
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ pkg/PFRAG.ld        30 Nov 2025 14:09:26 -0000
@@ -0,0 +1,7 @@
+@bin bin/gld
+@bin bin/gld.bfd
+lib/bfd-plugins/
+@so lib/bfd-plugins/libdep.so
+@info info/ld.info
+@info info/ldint.info
+@man man/man1/gld.1
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   30 Nov 2025 14:09:28 -0000
@@ -28,3 +28,4 @@
 @man man/man1/gstrip.1
 @comment @man man/man1/gwindmc.1
 @comment @man man/man1/gwindres.1
+%%ld%%

Reply via email to