diff options
author | John David Anglin <danglin@gcc.gnu.org> | 2020-08-27 15:25:03 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2020-08-27 15:25:03 +0000 |
commit | 9e7ed8b080afa19fff25244913594f95af282657 (patch) | |
tree | e7f674d3c99c6e7a3c5b8ccab397a68d039e8810 | |
parent | 6b5473c97e98828d6d8509b13a257efbed308bad (diff) | |
download | gdb-9e7ed8b080afa19fff25244913594f95af282657.zip gdb-9e7ed8b080afa19fff25244913594f95af282657.tar.gz gdb-9e7ed8b080afa19fff25244913594f95af282657.tar.bz2 |
Fix PR binutils/26356 on hppa*-*-hpux*.
PR 26356
* som.c (som_bfd_copy_private_section_data): Issue error when a
subspace is specified without its containing space.
* testsuite/binutils-all/objcopy.exp (objcopy --reverse-bytes): Add
"-j $PRIVATE$" to command on hppa*-*-hpux*.
* testsuite/lib/utils-lib.exp (default_binutils_run): Remove existing
dollar-sign quotes before quoting. Do this prior to generating log
output.
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/som.c | 14 | ||||
-rw-r--r-- | binutils/ChangeLog | 9 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/objcopy.exp | 10 | ||||
-rw-r--r-- | binutils/testsuite/lib/utils-lib.exp | 11 |
5 files changed, 39 insertions, 11 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1d783f7..7700973 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2020-08-27 John David Anglin <danglin@gcc.gnu.org> + + PR 26356 + * som.c (som_bfd_copy_private_section_data): Issue error when a + subspace is specified without its containing space. + 2020-08-27 Alan Modra <amodra@gmail.com> PR 26469 @@ -5455,8 +5455,18 @@ som_bfd_copy_private_section_data (bfd *ibfd, /* Reparent if necessary. */ if (som_section_data (osection)->copy_data->container) - som_section_data (osection)->copy_data->container = - som_section_data (osection)->copy_data->container->output_section; + { + if (som_section_data (osection)->copy_data->container->output_section) + som_section_data (osection)->copy_data->container = + som_section_data (osection)->copy_data->container->output_section; + else + { + /* User has specified a subspace without its containing space. */ + _bfd_error_handler (_("%pB[%pA]: no output section for space %pA"), + obfd, osection, som_section_data (osection)->copy_data->container); + return FALSE; + } + } return TRUE; } diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 6ad05ad..e5e3386 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,12 @@ +2020-08-27 John David Anglin <danglin@gcc.gnu.org> + + PR 26356 + * testsuite/binutils-all/objcopy.exp (objcopy --reverse-bytes): Add + "-j $PRIVATE$" to command on hppa*-*-hpux*. + * testsuite/lib/utils-lib.exp (default_binutils_run): Remove existing + dollar-sign quotes before quoting. Do this prior to generating log + output. + 2020-08-27 Ralf Habacker <ralf.habacker@freenet.de> PR 26088 diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp index f857003..9877f3d 100644 --- a/binutils/testsuite/binutils-all/objcopy.exp +++ b/binutils/testsuite/binutils-all/objcopy.exp @@ -170,7 +170,11 @@ if { [file exists $tempfile] } { set reversed ${tempfile}-reversed set sect_names [get_standard_section_names] if { $sect_names != "" } { - set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -j [lindex $sect_names 1] --reverse-bytes=4 $tempfile $reversed"] + if { [istarget hppa*-*-hpux*] } { + set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -j \$PRIVATE\$ -j [lindex $sect_names 1] --reverse-bytes=4 $tempfile $reversed"] + } else { + set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -j [lindex $sect_names 1] --reverse-bytes=4 $tempfile $reversed"] + } } else { set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -j .data --reverse-bytes=4 $tempfile $reversed"] } @@ -191,10 +195,6 @@ if { [file exists $tempfile] } { set found_rev [regexp -lineanchor $want $revdata -> revdata] if {$found_orig == 0 || $found_rev == 0} then { - # som doesn't have a .data section - setup_xfail "hppa*-*-hpux*" - clear_xfail "hppa*64*-*-hpux*" - fail "objcopy --reverse-bytes" } else { scan $origdata "%2x%2x%2x%2x" b1 b2 b3 b4 diff --git a/binutils/testsuite/lib/utils-lib.exp b/binutils/testsuite/lib/utils-lib.exp index 1bb5e61..56ac0cd 100644 --- a/binutils/testsuite/lib/utils-lib.exp +++ b/binutils/testsuite/lib/utils-lib.exp @@ -80,13 +80,16 @@ proc default_binutils_run { prog progargs } { regsub -- "-j \\.bss" $progargs "-j [lindex $sect_names 2]" progargs } + # Gotta quote dollar-signs because they get mangled by the + # shell otherwise. Since get_standard_section_names returns + # quoted section names, we first remove the original quote + # and then requote. + regsub -all {\\\$} "$progargs" {$} progargs + regsub -all {\$} "$progargs" {\$} progargs + send_log "$prog $progargs\n" verbose "$prog $progargs" - # Gotta quote dollar-signs because they get mangled by the - # shell otherwise. - regsub -all "\\$" "$progargs" "\\$" progargs - set state [remote_exec host $prog $progargs] set binutils_run_status [lindex $state 0] set exec_output [prune_warnings [lindex $state 1]] |