From f75bcf7e574c511f0ea742e05e5ae6e19bf29a92 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 9 Jun 2021 11:10:16 +0100 Subject: [PATCH] Fix the creation of archives for Sparc Solaris2 targets by eliminating the support for generic SPARC ELF files. PR 27666 bfd * config.bfd: Do not add the sparc_elf32_vec or sparc_elf64_vec vectors to Sparc Solaris2 targets. ld * testsuite/ld-sparc/sparc.exp: Do not run the sparctests or sparc64tests for Solaris2 targets. --- bfd/ChangeLog | 6 ++++++ bfd/config.bfd | 5 +++-- ld/ChangeLog | 6 ++++++ ld/testsuite/ld-sparc/sparc.exp | 19 ++++++++++++------- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d1192e3acc..d1a92dc594 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2021-06-09 Nick Clifton + + PR 27666 + * config.bfd: Do not add the sparc_elf32_vec or sparc_elf64_vec + vectors to Sparc Solaris2 targets. + 2021-06-08 Michael Matz * elf.c (bfd_section_from_shdr): Set has_secondary_relocs flag. diff --git a/bfd/config.bfd b/bfd/config.bfd index 9434fd6c7e..57b513c7c7 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -1279,13 +1279,14 @@ case "${targ}" in ;; sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*) + # PR 27666: Do not include sparc_elf32_vec here. targ_defvec=sparc_elf32_sol2_vec - targ_selvecs=sparc_elf32_vec ;; #ifdef BFD64 sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*) + # PR 27666: Do not include sparc_elf32_vec or sparc_elf64_vec here. targ_defvec=sparc_elf32_sol2_vec - targ_selvecs="sparc_elf64_sol2_vec sparc_elf32_vec sparc_elf64_vec" + targ_selvecs="sparc_elf64_sol2_vec" want64=true ;; sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu) diff --git a/ld/ChangeLog b/ld/ChangeLog index 3c2aa269b2..7ae7613dc7 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2021-06-09 Nick Clifton + + PR 27666 + * testsuite/ld-sparc/sparc.exp: Do not run the sparctests or + sparc64tests for Solaris2 targets. + 2021-06-03 Alan Modra PR 2589 diff --git a/ld/testsuite/ld-sparc/sparc.exp b/ld/testsuite/ld-sparc/sparc.exp index 5621d07736..3b65779c07 100644 --- a/ld/testsuite/ld-sparc/sparc.exp +++ b/ld/testsuite/ld-sparc/sparc.exp @@ -142,14 +142,19 @@ set sparc64tests { "libgotop64.so"} } -if { ![istarget "sparc64-*-elf*"] } { - run_ld_link_tests $sparctests -} +# The solaris2 targets do not support the generic SPARC ELF targets, +# ie -melf32_sparc and -melf64_sparc, so we skip the next set of +# tests for them. Support could be added, but this then breaks the +# creation of archives for those targets. See PR 27666 for more +# details. +if { ![istarget "*-*-solaris2*"] } { + if { ![istarget "sparc64-*-elf*"] } { + run_ld_link_tests $sparctests + } -if { !([istarget "sparc-*-elf*"] - || [istarget "sparc-sun-solaris2.5*"] - || [istarget "sparc-sun-solaris2.6"]) } { - run_ld_link_tests $sparc64tests + if { ![istarget "sparc-*-elf*"] } { + run_ld_link_tests $sparc64tests + } } if { [istarget "sparc*-*-linux*"] && [isnative] } { -- 2.34.1