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.
This commit is contained in:
John David Anglin 2020-08-27 15:25:03 +00:00
parent 6b5473c97e
commit 9e7ed8b080
5 changed files with 39 additions and 11 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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]]