[PATCH] ld: Fix elf_x86_64 and elf_i386 emulations for Solaris x86

H.J. Lu hjl.tools@gmail.com
Thu Sep 4 19:16:23 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 aren't really working:

$ ./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
$

Fix it by adding i386_elf32_vec and x86_64_elf64_vec to Solaris x86
linkers.

	PR ld/33374
	* config.bfd (targ_selvecs): Add i386_elf32_vec for
	i[3-7]86-*-solaris2* and x86_64_elf64_vec i386_elf32_vec for
	x86_64-*-solaris2*.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
 bfd/config.bfd | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bfd/config.bfd b/bfd/config.bfd
index a5c3953a18a..ce7fa8b756d 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -582,14 +582,14 @@ case "${targ}" in
     ;;
   i[3-7]86-*-solaris2*)
     targ_defvec=i386_elf32_sol2_vec
-    targ_selvecs="iamcu_elf32_vec i386_coff_vec i386_pei_vec"
+    targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec"
     targ64_selvecs="x86_64_elf64_sol2_vec x86_64_pe_vec x86_64_pei_vec"
     want64=true
     ;;
 #ifdef BFD64
   x86_64-*-solaris2*)
     targ_defvec=i386_elf32_sol2_vec
-    targ_selvecs="x86_64_elf64_sol2_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec"
+    targ_selvecs="x86_64_elf64_sol2_vec x86_64_elf64_vec i386_elf32_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec"
     want64=true
     ;;
 #endif
-- 
2.51.0



More information about the Binutils mailing list