2001-06-02 H.J. Lu <hjl@gnu.org>
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 3 Jun 2001 02:41:58 +0000 (02:41 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 3 Jun 2001 02:41:58 +0000 (02:41 +0000)
* elf32-hppa.c (elf32_hppa_object_p): Check ELFOSABI_LINUX
and ELFOSABI_HPUX.
* elf64-hppa.c (elf64_hppa_object_p): Likewise.

bfd/ChangeLog
bfd/elf32-hppa.c
bfd/elf64-hppa.c

index e9a53c95f354d57caa73e803e555a9443e307433..9e52c50026575241123894edf846a68866594390 100644 (file)
@@ -1,3 +1,9 @@
+2001-06-02  H.J. Lu  <hjl@gnu.org>
+
+       * elf32-hppa.c (elf32_hppa_object_p): Check ELFOSABI_LINUX
+       and ELFOSABI_HPUX.
+       * elf64-hppa.c (elf64_hppa_object_p): Likewise.
+
 2001-06-02  H.J. Lu  <hjl@gnu.org>
 
        * aout-cris.c (MACHTYPE_OK): New. Defined.
index 9f46a3d5805b9dcf23655014463560b33db87b21..c10df6bc811ac8432ecf0643fba2428454555e7b 100644 (file)
@@ -1147,8 +1147,22 @@ static boolean
 elf32_hppa_object_p (abfd)
      bfd *abfd;
 {
-  unsigned int flags = elf_elfheader (abfd)->e_flags;
+  Elf_Internal_Ehdr * i_ehdrp;
+  unsigned int flags;
+
+  i_ehdrp = elf_elfheader (abfd);
+  if (strcmp (bfd_get_target (abfd), "elf32-hppa-linux") == 0)
+    {
+      if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX)
+       return false;
+    }
+  else
+    {
+      if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_HPUX)
+       return false;
+    }
 
+  flags = i_ehdrp->e_flags;
   switch (flags & (EF_PARISC_ARCH | EF_PARISC_WIDE))
     {
     case EFA_PARISC_1_0:
index 1b3a548b72c0181988d58ae43d65cab27f3606bb..4a87358c9df8266b4c0a4c1a1335293bfd3deeaf 100644 (file)
@@ -358,8 +358,22 @@ static boolean
 elf64_hppa_object_p (abfd)
      bfd *abfd;
 {
-  unsigned int flags = elf_elfheader (abfd)->e_flags;
+  Elf_Internal_Ehdr * i_ehdrp;
+  unsigned int flags;
+
+  i_ehdrp = elf_elfheader (abfd);
+  if (strcmp (bfd_get_target (abfd), "elf64-hppa-linux") == 0)
+    {
+      if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX)
+       return false;
+    }
+  else
+    {
+      if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_HPUX)
+       return false;
+    }
 
+  flags = i_ehdrp->e_flags;
   switch (flags & (EF_PARISC_ARCH | EF_PARISC_WIDE))
     {
     case EFA_PARISC_1_0: