Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
UPDATE: GCC - using LLD on i386
To:
ports@openbsd.org
Cc:
sthen@openbsd.org
Date:
Thu, 27 Aug 2026 21:48:08 -0400

Download raw body.

Thread
Something has changed between LLVM 13 and 22 and the GCC ports now
build just fine on i386 with LLD.


Index: 11/Makefile
===================================================================
RCS file: /cvs/ports/lang/gcc/11/Makefile,v
retrieving revision 1.71
diff -u -p -u -p -r1.71 Makefile
--- 11/Makefile	8 Aug 2026 10:46:16 -0000	1.71
+++ 11/Makefile	28 Aug 2026 01:43:25 -0000
@@ -120,9 +120,6 @@ MAKE_ENV += ${EXTRA_ENV}
 # .sdata.DW.ref.__gxx_personality_v0
 USE_LLD = No
 CONFIGURE_ENV += LDFLAGS="-Wl,--relax"
-.elif ${MACHINE_ARCH:Mi386}
-USE_LLD = No
-# ld.lld: error: relocation R_386_PC32 cannot be used against symbol 'hash_set<nofree_string_hash, false, default_hash_traits<nofree_string_hash>>::hash_set(unsigned long, bool)'; recompile with -fPIC, etc.
 .endif
 
 # Note: the configure target passes CFLAGS to the configure script anyways.
Index: 15/Makefile
===================================================================
RCS file: /cvs/ports/lang/gcc/15/Makefile,v
retrieving revision 1.26
diff -u -p -u -p -r1.26 Makefile
--- 15/Makefile	23 Jul 2026 21:09:51 -0000	1.26
+++ 15/Makefile	28 Aug 2026 01:43:25 -0000
@@ -122,9 +122,6 @@ MAKE_ENV += ${EXTRA_ENV}
 # .sdata.DW.ref.__gxx_personality_v0
 USE_LLD = No
 CONFIGURE_ENV += LDFLAGS="-Wl,--relax"
-.elif ${MACHINE_ARCH:Mi386}
-USE_LLD = No
-# ld.lld: error: relocation R_386_PC32 cannot be used against symbol 'hash_set<nofree_string_hash, false, default_hash_traits<nofree_string_hash>>::hash_set(unsigned long, bool)'; recompile with -fPIC, etc.
 .endif
 
 # Note: the configure target passes CFLAGS to the configure script anyways.
Index: 16/Makefile
===================================================================
RCS file: /cvs/ports/lang/gcc/16/Makefile,v
retrieving revision 1.16
diff -u -p -u -p -r1.16 Makefile
--- 16/Makefile	21 Aug 2026 13:54:27 -0000	1.16
+++ 16/Makefile	28 Aug 2026 01:43:25 -0000
@@ -127,9 +127,6 @@ MAKE_ENV += ${EXTRA_ENV}
 # .sdata.DW.ref.__gxx_personality_v0
 USE_LLD = No
 CONFIGURE_ENV += LDFLAGS="-Wl,--relax"
-.elif ${MACHINE_ARCH:Mi386}
-USE_LLD = No
-# ld.lld: error: relocation R_386_PC32 cannot be used against symbol 'hash_set<nofree_string_hash, false, default_hash_traits<nofree_string_hash>>::hash_set(unsigned long, bool)'; recompile with -fPIC, etc.
 .endif
 
 # Note: the configure target passes CFLAGS to the configure script anyways.
Index: 8/Makefile
===================================================================
RCS file: /cvs/ports/lang/gcc/8/Makefile,v
retrieving revision 1.107
diff -u -p -u -p -r1.107 Makefile
--- 8/Makefile	2 Jun 2026 19:58:10 -0000	1.107
+++ 8/Makefile	28 Aug 2026 01:43:25 -0000
@@ -13,9 +13,6 @@ ONLY_FOR_ARCHS-ada = amd64 hppa i386 mip
 # .sdata.DW.ref.__gxx_personality_v0
 .if ${MACHINE_ARCH:Mpowerpc}
 USE_LLD = No
-.elif ${MACHINE_ARCH:Mi386}
-USE_LLD = No
-# ld.lld: error: relocation R_386_PC32 cannot be used against symbol 'hash_set<nofree_string_hash, false, default_hash_traits<nofree_string_hash>>::hash_set(unsigned long, bool)'; recompile with -fPIC, etc.
 .endif
 
 DPB_PROPERTIES = parallel