diff options
author | Maciej W. Rozycki <macro@imgtec.com> | 2016-05-16 08:22:59 +0100 |
---|---|---|
committer | Maciej W. Rozycki <macro@imgtec.com> | 2016-05-16 13:31:20 +0100 |
commit | 71de341392d18d7951b5a00fe68b6309e2dfbb47 (patch) | |
tree | 39c1fd0b116141b81fe4464dd96181cd93cd06f9 /bfd/elf32-v850.c | |
parent | 7b14583ef0c858dc8f29c127f70b034f7f5d4ad2 (diff) | |
download | gdb-71de341392d18d7951b5a00fe68b6309e2dfbb47.zip gdb-71de341392d18d7951b5a00fe68b6309e2dfbb47.tar.gz gdb-71de341392d18d7951b5a00fe68b6309e2dfbb47.tar.bz2 |
V850/BFD: Call `_bfd_elf_copy_private_bfd_data' again
Correct a regression introduced with commit 685080f21003 ("Adds support
for generating notes in V850 binaries.") which replaced rather than
extending the call to `_bfd_elf_copy_private_bfd_data' with
`v850_elf_copy_private_bfd_data'. Consequently ELFOSABI_GNU marking is
not propagated to output by `objcopy' from objects containing
STB_GNU_UNIQUE symbols.
bfd/
* elf32-v850.c (v850_elf_copy_notes): New function, factored out
from...
(v850_elf_copy_private_bfd_data): ... here. Call the new
function and `_bfd_elf_copy_private_bfd_data'.
binutils/
* testsuite/binutils-all/objcopy.exp: Don't skip the `strip-10'
test for the V850.
Diffstat (limited to 'bfd/elf32-v850.c')
-rw-r--r-- | bfd/elf32-v850.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index 3df0e0e..8f73d32 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -2428,10 +2428,10 @@ v850_elf_set_note (bfd * abfd, enum v850_notes note, unsigned int val) return TRUE; } -/* Copy backend specific data from one object module to another. */ +/* Copy a v850 note section from one object module to another. */ -static bfd_boolean -v850_elf_copy_private_bfd_data (bfd * ibfd, bfd * obfd) +static void +v850_elf_copy_notes (bfd *ibfd, bfd *obfd) { asection * onotes; asection * inotes; @@ -2440,10 +2440,10 @@ v850_elf_copy_private_bfd_data (bfd * ibfd, bfd * obfd) skip the merge. The normal input to output section copying will take care of everythng for us. */ if ((onotes = bfd_get_section_by_name (obfd, V850_NOTE_SECNAME)) == NULL) - return TRUE; + return; if ((inotes = bfd_get_section_by_name (ibfd, V850_NOTE_SECNAME)) == NULL) - return TRUE; + return; if (bfd_section_size (ibfd, inotes) == bfd_section_size (obfd, onotes)) { @@ -2459,8 +2459,15 @@ v850_elf_copy_private_bfd_data (bfd * ibfd, bfd * obfd) /* Copy/overwrite notes from the input to the output. */ memcpy (ocont, icont, bfd_section_size (obfd, onotes)); } +} - return TRUE; +/* Copy backend specific data from one object module to another. */ + +static bfd_boolean +v850_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd) +{ + v850_elf_copy_notes (ibfd, obfd); + return _bfd_elf_copy_private_bfd_data (ibfd, obfd); } #define bfd_elf32_bfd_copy_private_bfd_data v850_elf_copy_private_bfd_data |