diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2007-03-14 02:56:45 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2007-03-14 02:56:45 +0000 |
commit | d1036acbe72ee838ccf0c876be94884246589641 (patch) | |
tree | 760f152471afeae4adb28cfd3acbf31aaa5ab5b9 /bfd/elf32-hppa.c | |
parent | 0e0cefcbabaf5c324266363727adc8c9f6559990 (diff) | |
download | gdb-d1036acbe72ee838ccf0c876be94884246589641.zip gdb-d1036acbe72ee838ccf0c876be94884246589641.tar.gz gdb-d1036acbe72ee838ccf0c876be94884246589641.tar.bz2 |
2007-03-13 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/3826
* elf-bfd.h (elf_backend_data): Add elf_osabi.
(_bfd_elf_set_osabi): New.
* elf.c (_bfd_elf_set_osabi): New.
* elf32-hppa.c (elf32_hppa_post_process_headers): Removed.
(elf_backend_post_process_headers): Defined with
_bfd_elf_set_osabi.
(ELF_OSABI): Properly defined for each target.
* elf32-i370.c (i370_elf_post_process_headers): Removed.
(ELF_OSABI): Defined.
(elf_backend_post_process_headers): Defined with
_bfd_elf_set_osabi.
* elf32-i386.c (ELF_OSABI): Defined to ELFOSABI_FREEBSD for
freebsd.
(elf_i386_post_process_headers): Set EI_OSABI with elf_osabi.
* elf32-msp430.c (elf32_msp430_post_process_headers): Removed.
(ELF_OSABI): Defined.
(elf_backend_post_process_headers): Defined with
_bfd_elf_set_osabi.
* elf64-alpha.c (ELF_OSABI): Defined to ELFOSABI_FREEBSD for
freebsd.
(elf64_alpha_fbsd_post_process_headers): Set EI_OSABI with
elf_osabi.
* elf64-hppa.c (elf64_hppa_post_process_headers): Set EI_OSABI
with elf_osabi.
(ELF_OSABI): Properly defined for each target.
(elf_backend_post_process_headers): Defined with
_bfd_elf_set_osabi for Linux.
* elf64-sparc.c (elf64_sparc_fbsd_post_process_headers): Removed.
(ELF_OSABI): Defined to ELFOSABI_FREEBSD for freebsd.
(elf_backend_post_process_headers): Defined with
_bfd_elf_set_osabi.
* elf64-x86-64.c (elf64_x86_64_fbsd_post_process_headers): Removed.
(ELF_OSABI): Defined to ELFOSABI_FREEBSD for freebsd.
(elf_backend_post_process_headers): Defined with
_bfd_elf_set_osabi.
* elfcode.h (elf_object_p): Match the ELFOSABI_NONE ELF target
with any ELF target of the compatible machine for which we do not
have a specific backend.
* elfxx-ia64.c (elfNN_hpux_post_process_headers): Set EI_OSABI
with elf_osabi.
* elfxx-target.h (ELF_OSABI): Default to ELFOSABI_NONE.
(elfNN_bed): Initialize elf_osabi with ELF_OSABI.
Diffstat (limited to 'bfd/elf32-hppa.c')
-rw-r--r-- | bfd/elf32-hppa.c | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c index 117300e..13c2696 100644 --- a/bfd/elf32-hppa.c +++ b/bfd/elf32-hppa.c @@ -4601,30 +4601,6 @@ elf32_hppa_finish_dynamic_sections (bfd *output_bfd, return TRUE; } -/* Tweak the OSABI field of the elf header. */ - -static void -elf32_hppa_post_process_headers (bfd *abfd, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ - Elf_Internal_Ehdr * i_ehdrp; - - i_ehdrp = elf_elfheader (abfd); - - if (strcmp (bfd_get_target (abfd), "elf32-hppa-linux") == 0) - { - i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_LINUX; - } - else if (strcmp (bfd_get_target (abfd), "elf32-hppa-netbsd") == 0) - { - i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_NETBSD; - } - else - { - i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_HPUX; - } -} - /* Called when writing out an object file to decide the type of a symbol. */ static int @@ -4663,7 +4639,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type) #define elf_backend_grok_psinfo elf32_hppa_grok_psinfo #define elf_backend_object_p elf32_hppa_object_p #define elf_backend_final_write_processing elf_hppa_final_write_processing -#define elf_backend_post_process_headers elf32_hppa_post_process_headers +#define elf_backend_post_process_headers _bfd_elf_set_osabi #define elf_backend_get_symbol_type elf32_hppa_elf_get_symbol_type #define elf_backend_reloc_type_class elf32_hppa_reloc_type_class #define elf_backend_action_discarded elf_hppa_action_discarded @@ -4682,6 +4658,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type) #define ELF_ARCH bfd_arch_hppa #define ELF_MACHINE_CODE EM_PARISC #define ELF_MAXPAGESIZE 0x1000 +#define ELF_OSABI ELFOSABI_HPUX #define elf32_bed elf32_hppa_hpux_bed #include "elf32-target.h" @@ -4690,6 +4667,8 @@ elf32_hppa_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type) #define TARGET_BIG_SYM bfd_elf32_hppa_linux_vec #undef TARGET_BIG_NAME #define TARGET_BIG_NAME "elf32-hppa-linux" +#undef ELF_OSABI +#define ELF_OSABI ELFOSABI_LINUX #undef elf32_bed #define elf32_bed elf32_hppa_linux_bed @@ -4699,6 +4678,8 @@ elf32_hppa_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type) #define TARGET_BIG_SYM bfd_elf32_hppa_nbsd_vec #undef TARGET_BIG_NAME #define TARGET_BIG_NAME "elf32-hppa-netbsd" +#undef ELF_OSABI +#define ELF_OSABI ELFOSABI_NETBSD #undef elf32_bed #define elf32_bed elf32_hppa_netbsd_bed |