diff options
author | Alan Modra <amodra@gmail.com> | 2001-01-31 13:28:50 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2001-01-31 13:28:50 +0000 |
commit | d9634ba1ffb3d4209a06fa5ad42feb3700da0bb5 (patch) | |
tree | a8a35de48d1f2ca53013b2eb78a29658bc7af89b /bfd/elf64-hppa.c | |
parent | 956eedd4dc39168a5841975ee0fbf2da8301559f (diff) | |
download | gdb-d9634ba1ffb3d4209a06fa5ad42feb3700da0bb5.zip gdb-d9634ba1ffb3d4209a06fa5ad42feb3700da0bb5.tar.gz gdb-d9634ba1ffb3d4209a06fa5ad42feb3700da0bb5.tar.bz2 |
(elf64_hppa_object_p): Set architecture and machine from elf header flags.
Diffstat (limited to 'bfd/elf64-hppa.c')
-rw-r--r-- | bfd/elf64-hppa.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c index 7aa4e18..1b3a548 100644 --- a/bfd/elf64-hppa.c +++ b/bfd/elf64-hppa.c @@ -358,8 +358,21 @@ static boolean elf64_hppa_object_p (abfd) bfd *abfd; { - /* Set the right machine number for an HPPA ELF file. */ - return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 25); + unsigned int flags = elf_elfheader (abfd)->e_flags; + + switch (flags & (EF_PARISC_ARCH | EF_PARISC_WIDE)) + { + case EFA_PARISC_1_0: + return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 10); + case EFA_PARISC_1_1: + return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 11); + case EFA_PARISC_2_0: + return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 20); + case EFA_PARISC_2_0 | EF_PARISC_WIDE: + return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 25); + } + /* Don't be fussy. */ + return true; } /* Given section type (hdr->sh_type), return a boolean indicating |