[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