From: Brad Smith Subject: UPDATE: GCC - using LLD on i386 To: ports@openbsd.org Cc: sthen@openbsd.org Date: Thu, 27 Aug 2026 21:48:08 -0400 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>::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>::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>::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>::hash_set(unsigned long, bool)'; recompile with -fPIC, etc. .endif DPB_PROPERTIES = parallel