From 31d5afc19d98869aa13c3197f55b8a208fd19da2 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 18 Apr 2024 13:24:42 +0100 Subject: [PATCH] HPPA64 linker: Do not force the generation of DT_FLAGS for Linux targets. PR 30743 --- bfd/elf64-hppa.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c index 041ab29c3b4..2d08bf37155 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 -- 2.11.4.GIT