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 | |
parent | 84b66498ef56905eb8ec15b94f3f06ddad978234 (diff) | |
download | gdb-57b828ef364b3cce05d9fb35be758cb4530e0e12.zip gdb-57b828ef364b3cce05d9fb35be758cb4530e0e12.tar.gz gdb-57b828ef364b3cce05d9fb35be758cb4530e0e12.tar.bz2 |
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.
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elf.c | 14 | ||||
-rw-r--r-- | binutils/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/strip-10.d | 4 |
4 files changed, 24 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 09da41b..7e41ce8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,12 @@ 2013-12-12 H.J. Lu <hongjiu.lu@intel.com> + 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. + +2013-12-12 H.J. Lu <hongjiu.lu@intel.com> + * elf32-sh.c (bfd_elf32_bfd_set_private_bfd_flags): Removed. 2013-12-12 H.J. Lu <hongjiu.lu@intel.com> @@ -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); diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index fbcb5d2..26cda41 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-12-12 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/16318 + * binutils-all/strip-10.d: Check OS/ABI. + 2013-12-07 Mike Frysinger <vapier@gentoo.org> * binutils-all/windres/escapex-2.rc: Remove +x file mode. diff --git a/binutils/testsuite/binutils-all/strip-10.d b/binutils/testsuite/binutils-all/strip-10.d index 588c7d1..f4cf76d 100644 --- a/binutils/testsuite/binutils-all/strip-10.d +++ b/binutils/testsuite/binutils-all/strip-10.d @@ -1,8 +1,10 @@ #PROG: strip #source: unique.s #strip: -g -#readelf: -s +#readelf: -sh #name: strip on STB_GNU_UNIQUE #... + OS/ABI:[ \t]+UNIX - GNU +#... +[0-9]+: +[0-9a-f]+ +[0-9]+ +OBJECT +(UNIQUE|<OS specific>: 10) +DEFAULT +[1-9] foo |