Add back non-solaris ELF targets to solaris config
Alan Modra
amodra@gmail.com
Sat Dec 20 04:53:00 GMT 2025
This reverses some of the changes made in config.bfd for PR 27666.
Removing targets for that PR was really just a workaround, and since
the underlying bug is now fixed they can be added back.
I chose to add the non-solaris ELF targets to the linker config using
targ_extra_emuls rather than targ_extra_libpath because someone using
the elf32_sparc emulation probably doesn't want to pick up solaris
libraries by accident.
It's a demonstration of what can be done rather than what should be
done. I don't intend to commit this change as I may not be aware of
other reasons to remove these targets besides pr27666. In any case,
users can add these targets back if they wish with eg.
--target=sparc64-sun-solaris2.11 \
--enable-targets="sparc64-elf,sparc-elf"
bfd/
* config.bfd: Remove pr27666 comments. Add back non-solaris
ELF targets to selvecs for solaris targets.
ld/
* configure.tgt: Adjust solaris targets to suit config.bfd
change.
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 6648810f7fe..848fd624320 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -595,13 +595,13 @@ case "${targ}" in
targ_selvecs="iamcu_elf32_vec i386_coff_vec"
;;
i[3-7]86-*-solaris2*)
- # PR 27666: Do not include i386_elf32_vec or x86_64_elf64_vec.
targ_defvec=i386_elf32_sol2_vec
- targ64_selvecs=x86_64_elf64_sol2_vec
+ targ_selvecs=i386_elf32_vec
+ targ64_selvecs="x86_64_elf64_sol2_vec x86_64_elf64_vec"
;;
i[3-7]86-*-solaris*)
- # PR 27666: Do not include i386_elf32_vec here.
targ_defvec=i386_elf32_sol2_vec
+ targ_selvecs=i386_elf32_vec
;;
i[3-7]86-*-nto*)
targ_defvec=i386_elf32_vec
@@ -726,9 +726,8 @@ case "${targ}" in
want64=true
;;
x86_64-*-solaris2*)
- # PR 27666: Do not include i386_elf32_vec or x86_64_elf64_vec.
targ_defvec=x86_64_elf64_sol2_vec
- targ_selvecs=i386_elf32_sol2_vec
+ targ_selvecs="i386_elf32_sol2_vec x86_64_elf64_vec i386_elf32_vec"
want64=true
;;
x86_64-*-gnu*)
@@ -1335,15 +1334,14 @@ case "${targ}" in
targ_underscore=yes
;;
sparc-*-solaris2*)
- # PR 27666: Do not include sparc_elf32_vec or sparc_elf64_vec here.
targ_defvec=sparc_elf32_sol2_vec
- targ64_selvecs=sparc_elf64_sol2_vec
+ targ_selvecs=sparc_elf32_vec
+ targ64_selvecs="sparc_elf64_sol2_vec sparc_elf64_vec"
;;
#ifdef BFD64
sparcv9-*-solaris2* | sparc64-*-solaris2*)
- # PR 27666: Do not include sparc_elf32_vec or sparc_elf64_vec here.
targ_defvec=sparc_elf64_sol2_vec
- targ_selvecs=sparc_elf32_sol2_vec
+ targ_selvecs="sparc_elf32_sol2_vec sparc_elf64_vec sparc_elf32_vec"
want64=true
;;
sparc64-*-haiku*)
@@ -1370,8 +1368,8 @@ case "${targ}" in
targ_selvecs="sparc_elf32_vec"
;;
sparc*-*-solaris*)
- # PR 27666: Do not include sparc_elf32_vec here.
targ_defvec=sparc_elf32_sol2_vec
+ targ_selvecs=sparc_elf32_vec
;;
sparc*-*-*)
targ_defvec=sparc_elf32_vec
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 8efe659e5a0..580f665fe67 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -375,10 +375,13 @@ i[3-7]86-*-redox*) targ_emul=elf_i386
;;
i[3-7]86-*-solaris2*)
targ_emul=elf_i386_sol2
+ targ_extra_emuls=elf_i386
targ64_extra_libpath=elf_x86_64_sol2
+ targ64_extra_emuls=elf_x86_64
;;
i[3-7]86-*-solaris*)
targ_emul=elf_i386_sol2
+ targ_extra_emuls=elf_i386
;;
i[3-7]86-*-netbsd* | \
i[3-7]86-*-netbsd*-gnu* | \
@@ -918,6 +921,7 @@ sparc64-*-*bsd*) targ_emul=elf64_sparc
sparc64-*-solaris2* | sparcv9-*-solaris2*)
targ_emul=elf64_sparc_sol2
targ_extra_libpath=elf32_sparc_sol2
+ targ_extra_emuls="elf64_sparc elf32_sparc"
;;
sparc64-*-haiku*) targ_emul=elf64_sparc
;;
@@ -930,10 +934,13 @@ sparc*-*-linux-*) targ_emul=elf32_sparc
;;
sparc-*-solaris2*)
targ_emul=elf32_sparc_sol2
+ targ_extra_emuls=elf32_sparc
targ64_extra_libpath=elf64_sparc_sol2
+ targ64_extra_emuls=elf64_sparc
;;
sparc*-*-solaris*)
targ_emul=elf32_sparc_sol2
+ targ_extra_emuls=elf32_sparc
;;
sparc*-*-vxworks*) targ_emul=elf32_sparc_vxworks
;;
@@ -1004,6 +1011,7 @@ x86_64-*-redox*) targ_emul=elf_x86_64
x86_64-*-solaris2*)
targ_emul=elf_x86_64_sol2
targ_extra_libpath=elf_i386_sol2
+ targ_extra_emuls="elf_x86_64 elf_i386"
;;
x86_64-*-netbsd* | x86_64-*-openbsd*)
targ_emul=elf_x86_64
--
Alan Modra
More information about the Binutils
mailing list