diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2013-12-12 14:41:15 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2013-12-12 14:41:15 -0800 |
commit | 57b828ef364b3cce05d9fb35be758cb4530e0e12 (patch) | |
tree | 51bfcdcc47a95c1cb2569937a11dc76290d9d7f9 /bfd/elf.c | |
parent | 84b66498ef56905eb8ec15b94f3f06ddad978234 (diff) | |
download | binutils-gdb-57b828ef364b3cce05d9fb35be758cb4530e0e12.tar.gz |
Also copy EI_OSABI field
bfd/
PR binutils/16318
* elf.c (_bfd_elf_copy_private_bfd_data): Remove BFD_ASSERT.
Set e_flags only if elf_flags_init is FALSE. Copy EI_OSABI
field.
binutils/testsuite/
PR binutils/16318
* binutils-all/strip-10.d: Check OS/ABI.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r-- | bfd/elf.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/bfd/elf.c b/bfd/elf.c index 66d9644f4c8..30d4171154f 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -1117,13 +1117,17 @@ _bfd_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd) || bfd_get_flavour (obfd) != bfd_target_elf_flavour) return TRUE; - BFD_ASSERT (!elf_flags_init (obfd) - || (elf_elfheader (obfd)->e_flags - == elf_elfheader (ibfd)->e_flags)); + if (!elf_flags_init (obfd)) + { + elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags; + elf_flags_init (obfd) = TRUE; + } elf_gp (obfd) = elf_gp (ibfd); - elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags; - elf_flags_init (obfd) = TRUE; + + /* Also copy the EI_OSABI field. */ + elf_elfheader (obfd)->e_ident[EI_OSABI] = + elf_elfheader (ibfd)->e_ident[EI_OSABI]; /* Copy object attributes. */ _bfd_elf_copy_obj_attributes (ibfd, obfd); |