aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2020-08-27 15:25:03 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2020-08-27 15:25:03 +0000
commit9e7ed8b080afa19fff25244913594f95af282657 (patch)
treee7f674d3c99c6e7a3c5b8ccab397a68d039e8810
parent6b5473c97e98828d6d8509b13a257efbed308bad (diff)
downloadgdb-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/ChangeLog6
-rw-r--r--bfd/som.c14
-rw-r--r--binutils/ChangeLog9
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp10
-rw-r--r--binutils/testsuite/lib/utils-lib.exp11
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
diff --git a/bfd/som.c b/bfd/som.c
index 93a0ad8..d3865f0 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -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]]