aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-02-15 09:48:50 +1030
committerAlan Modra <amodra@gmail.com>2021-02-15 13:34:08 +1030
commit1781a9d0f3d0319abeeae73b1f1f78fbf3778739 (patch)
tree9284cb96c03408b02e12dfb7c006f251a43d3a5b
parent8b78cbec3191c7f153d116fb2184ea6400b3a7b1 (diff)
downloadfsf-binutils-gdb-1781a9d0f3d0319abeeae73b1f1f78fbf3778739.zip
fsf-binutils-gdb-1781a9d0f3d0319abeeae73b1f1f78fbf3778739.tar.gz
fsf-binutils-gdb-1781a9d0f3d0319abeeae73b1f1f78fbf3778739.tar.bz2
nds32_elf_get_relocated_section_contents
nds32_elf_get_relocated_section_contents uses nds32_get_section_contents to read sections contents, but nds32_get_section_contents has the wrong behaviour as it calls bfd_malloc_and_get_section. That function always mallocs its output buffer, whereas get_relocated_section_contents must support an already allocated buffer. bfd/ * elf32-nds32.c (nds32_get_section_contents): Replace bfd_malloc_and_get_section with bfd_get_full_section_contents. (nds32_elf_relax_delete_blanks): Init contents. (nds32_elf_relax_section, nds32_relax_fp_as_gp): Likewise. binutils/ * testsuite/binutils-all/compress.exp: Remove nds32 xfails. * testsuite/binutils-all/objdump.exp: Likewise.
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf32-nds32.c5
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/testsuite/binutils-all/compress.exp4
-rw-r--r--binutils/testsuite/binutils-all/objdump.exp2
5 files changed, 17 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7ff7eb0..cd018fe 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,12 @@
2021-02-15 Alan Modra <amodra@gmail.com>
+ * elf32-nds32.c (nds32_get_section_contents): Replace
+ bfd_malloc_and_get_section with bfd_get_full_section_contents.
+ (nds32_elf_relax_delete_blanks): Init contents.
+ (nds32_elf_relax_section, nds32_relax_fp_as_gp): Likewise.
+
+2021-02-15 Alan Modra <amodra@gmail.com>
+
* coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Use
bfd_get_full_section_contents.
diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c
index 59ed470..01d0702 100644
--- a/bfd/elf32-nds32.c
+++ b/bfd/elf32-nds32.c
@@ -9201,6 +9201,7 @@ nds32_elf_relax_delete_blanks (bfd *abfd, asection *sec,
if (!(sect->flags & SEC_RELOC))
continue;
+ contents = NULL;
nds32_get_section_contents (abfd, sect, &contents, TRUE);
for (irel = internal_relocs; irel < irelend; irel++)
@@ -9457,7 +9458,7 @@ nds32_get_section_contents (bfd *abfd, asection *sec,
*contents_p = elf_section_data (sec)->this_hdr.contents;
else
{
- if (!bfd_malloc_and_get_section (abfd, sec, contents_p))
+ if (!bfd_get_full_section_contents (abfd, sec, contents_p))
return FALSE;
if (cache)
elf_section_data (sec)->this_hdr.contents = *contents_p;
@@ -12157,6 +12158,7 @@ nds32_elf_relax_section (bfd *abfd, asection *sec,
load_store_relax = table->load_store_relax;
/* Get symbol table and section content. */
+ contents = NULL;
if (!nds32_get_section_contents (abfd, sec, &contents, TRUE)
|| !nds32_get_local_syms (abfd, sec, &isymbuf))
goto error_return;
@@ -12814,6 +12816,7 @@ nds32_relax_fp_as_gp (struct bfd_link_info *link_info,
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
+ contents = NULL;
if (!nds32_get_section_contents (abfd, sec, &contents, TRUE)
|| !nds32_get_local_syms (abfd, sec, &isymbuf))
return FALSE;
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 12ff93d..a7a9cae 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2021-02-15 Alan Modra <amodra@gmail.com>
+
+ * testsuite/binutils-all/compress.exp: Remove nds32 xfails.
+ * testsuite/binutils-all/objdump.exp: Likewise.
+
2021-02-14 Alan Modra <amodra@gmail.com>
* objdump.c (slurp_symtab): Don't add an extra entry for NULL
diff --git a/binutils/testsuite/binutils-all/compress.exp b/binutils/testsuite/binutils-all/compress.exp
index 5801f6b..98daf67 100644
--- a/binutils/testsuite/binutils-all/compress.exp
+++ b/binutils/testsuite/binutils-all/compress.exp
@@ -162,7 +162,6 @@ if ![string match "" $got] then {
}
}
-setup_xfail "nds32*-*-*"
set testname "objdump compress debug sections"
set got [remote_exec host "$OBJDUMP -W ${compressedfile}.o" "" "/dev/null" "objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
@@ -175,7 +174,6 @@ if { [regexp_diff objdump.out $srcdir/$subdir/dw2-1.W] } then {
pass "$testname"
}
-setup_xfail "nds32*-*-*"
set testname "objdump compress debug sections 3"
set got [remote_exec host "$OBJDUMP -W ${compressedfile3}.o" "" "/dev/null" "objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
@@ -546,7 +544,6 @@ if ![string match "" $got] then {
}
}
-setup_xfail "nds32*-*-*"
set testname "objcopy compress debug sections in archive with zlib-gabi"
set got [binutils_run $OBJCOPY "--compress-debug-sections=zlib-gabi ${copyfile}gabi.a ${compressedcopyfile}gabi.a"]
if ![string match "" $got] then {
@@ -567,7 +564,6 @@ if ![string match "" $got] then {
}
}
-setup_xfail "nds32*-*-*"
set testname "objdump compress debug sections 3 with zlib-gabi"
set got [remote_exec host "$OBJDUMP -W ${compressedfile3}gabi.o" "" "/dev/null" "objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
diff --git a/binutils/testsuite/binutils-all/objdump.exp b/binutils/testsuite/binutils-all/objdump.exp
index 6f95d40..9a0720f 100644
--- a/binutils/testsuite/binutils-all/objdump.exp
+++ b/binutils/testsuite/binutils-all/objdump.exp
@@ -503,7 +503,7 @@ if { ![is_elf_format] } then {
send_log "\n"
}
- setup_xfail "msp430-*-*" "nds32*-*-*"
+ setup_xfail "msp430-*-*"
if { [regexp_diff objdump.out $srcdir/$subdir/dw2-ranges.W] } then {
fail "objdump -W for debug_ranges"
} else {