diff options
-rw-r--r-- | bfd/elf64-hppa.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c index 041ab29..2d08bf3 100644 --- a/bfd/elf64-hppa.c +++ b/bfd/elf64-hppa.c @@ -27,6 +27,10 @@ #include "elf64-hppa.h" #include "libiberty.h" +/* Target vectors for HPUX and non-HPUX versions of HPPA ELF binaries. */ +extern const bfd_target hppa_elf64_vec; +extern const bfd_target hppa_elf64_linux_vec; + #define ARCH_SIZE 64 #define PLT_ENTRY_SIZE 0x10 @@ -316,7 +320,7 @@ elf64_hppa_object_p (bfd *abfd) unsigned int flags; i_ehdrp = elf_elfheader (abfd); - if (strcmp (bfd_get_target (abfd), "elf64-hppa-linux") == 0) + if (abfd->xvec == & hppa_elf64_linux_vec) { /* GCC on hppa-linux produces binaries with OSABI=GNU, but the kernel produces corefiles with OSABI=SysV. */ @@ -1833,9 +1837,13 @@ elf64_hppa_late_size_sections (bfd *output_bfd, struct bfd_link_info *info) } /* Force DT_FLAGS to always be set. - Required by HPUX 11.00 patch PHSS_26559. */ - if (!add_dynamic_entry (DT_FLAGS, (info)->flags)) - return false; + Required by HPUX 11.00 patch PHSS_26559. + PR 30743: But do not set them for non-HPUX targets. */ + if (output_bfd->xvec == & hppa_elf64_vec) + { + if (!add_dynamic_entry (DT_FLAGS, (info)->flags)) + return false; + } } #undef add_dynamic_entry |