[PATCH v2] ld: Remove elf_x86_64/elf_i386 emulations from Solaris x86 linker

H.J. Lu hjl.tools@gmail.com
Fri Sep 5 12:13:55 GMT 2025


Linkers configured for i[3-7]86-*-solaris2* and x86_64-*-solaris2* report:

$ ./ld-new -V
GNU ld (GNU Binutils) 2.45.50.20250904
  Supported emulations:
   elf_x86_64_sol2
   elf_x86_64
   elf_i386_sol2
   elf_i386_ldso
   elf_i386
   elf_iamcu

However, elf_x86_64 and elf_i386 emulations are unsupported:

$ ./ld-new -melf_x86_64 -shared x.o
./ld-new: target elf64-x86-64 not found
...
$ ./ld-new -melf_i386 -shared x.o
./ld-new: target elf32-i386 not found
$

since elf64-x86-64 and elf32-i386 targets were excluded due to

https://sourceware.org/bugzilla/show_bug.cgi?id=27666

Removing elf_i386 and elf_x86_64 emulations from Solaris x86 linkers to
get

$ ./ld-new -V
GNU ld (GNU Binutils) 2.45.50.20250904
  Supported emulations:
   elf_x86_64_sol2
   elf_i386_sol2
   elf_i386_ldso
   elf_iamcu

	PR binutils/27666
	PR ld/33374
	* configure.tgt (targ_extra_emuls): Remove elf_i386 and elf_x86_64
	for i[3-7]86-*-solaris2* and x86_64-*-solaris2*.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
 ld/configure.tgt | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/ld/configure.tgt b/ld/configure.tgt
index 0343010ca7d..b7893b699cd 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -374,11 +374,10 @@ i[3-7]86-*-redox*)	targ_emul=elf_i386
 			targ_extra_emuls=elf_x86_64
 			;;
 i[3-7]86-*-solaris2*)	targ_emul=elf_i386_sol2
-			targ_extra_emuls="elf_i386_ldso elf_i386 elf_iamcu elf_x86_64_sol2 elf_x86_64"
+			targ_extra_emuls="elf_i386_ldso elf_iamcu elf_x86_64_sol2"
 			targ_extra_libpath=$targ_extra_emuls
 			;;
 i[3-7]86-*-solaris*)	targ_emul=elf_i386_ldso
-			targ_extra_emuls="elf_i386"
 			targ_extra_libpath=$targ_extra_emuls
 			;;
 i[3-7]86-*-netbsd* | \
@@ -1007,7 +1006,7 @@ x86_64-*-redox*)	targ_emul=elf_x86_64
 			targ_extra_emuls=elf_i386
 			;;
 x86_64-*-solaris2*)	targ_emul=elf_x86_64_sol2
-			targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu"
+			targ_extra_emuls="elf_i386_sol2 elf_i386_ldso elf_iamcu"
 			targ_extra_libpath=$targ_extra_emuls
 			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
 			;;
-- 
2.51.0



More information about the Binutils mailing list