12159047fSniklas /* ELF32/HPPA support 22159047fSniklas 32159047fSniklas This file contains ELF32/HPPA relocation support as specified 42159047fSniklas in the Stratus FTX/Golf Object File Format (SED-1762) dated 52159047fSniklas February 1994. 62159047fSniklas 7c074d1c9Sdrahn Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 8*007c2a45Smiod 2002, 2003 Free Software Foundation, Inc. 92159047fSniklas 102159047fSniklas Written by: 112159047fSniklas 122159047fSniklas Center for Software Science 132159047fSniklas Department of Computer Science 142159047fSniklas University of Utah 152159047fSniklas 162159047fSniklas This file is part of BFD, the Binary File Descriptor library. 172159047fSniklas 182159047fSniklas This program is free software; you can redistribute it and/or modify 192159047fSniklas it under the terms of the GNU General Public License as published by 202159047fSniklas the Free Software Foundation; either version 2 of the License, or 212159047fSniklas (at your option) any later version. 222159047fSniklas 232159047fSniklas This program is distributed in the hope that it will be useful, 242159047fSniklas but WITHOUT ANY WARRANTY; without even the implied warranty of 252159047fSniklas MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 262159047fSniklas GNU General Public License for more details. 272159047fSniklas 282159047fSniklas You should have received a copy of the GNU General Public License 292159047fSniklas along with this program; if not, write to the Free Software 302159047fSniklas Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 312159047fSniklas 322159047fSniklas #ifndef _ELF32_HPPA_H 332159047fSniklas #define _ELF32_HPPA_H 342159047fSniklas 352159047fSniklas #include "elf-bfd.h" 362159047fSniklas #include "libhppa.h" 372159047fSniklas #include "elf/hppa.h" 382159047fSniklas 39c074d1c9Sdrahn int elf32_hppa_setup_section_lists 40*007c2a45Smiod (bfd *, struct bfd_link_info *); 41c074d1c9Sdrahn 42c074d1c9Sdrahn void elf32_hppa_next_input_section 43*007c2a45Smiod (struct bfd_link_info *, asection *); 44c074d1c9Sdrahn 45c074d1c9Sdrahn bfd_boolean elf32_hppa_size_stubs 46*007c2a45Smiod (bfd *, bfd *, struct bfd_link_info *, bfd_boolean, bfd_signed_vma, 47*007c2a45Smiod asection * (*) (const char *, asection *), void (*) (void)); 482159047fSniklas 49c074d1c9Sdrahn bfd_boolean elf32_hppa_set_gp 50*007c2a45Smiod (bfd *, struct bfd_link_info *); 512159047fSniklas 52c074d1c9Sdrahn bfd_boolean elf32_hppa_build_stubs 53*007c2a45Smiod (struct bfd_link_info *); 54b55d4692Sfgsch 55c074d1c9Sdrahn elf_hppa_reloc_type elf32_hppa_reloc_final_type 56*007c2a45Smiod (bfd *, elf_hppa_reloc_type, int, unsigned int); 57c074d1c9Sdrahn 58b305b0f1Sespie extern elf_hppa_reloc_type ** _bfd_elf32_hppa_gen_reloc_type 59*007c2a45Smiod (bfd *, elf_hppa_reloc_type, int, unsigned int, int, asymbol *); 602159047fSniklas 612159047fSniklas /* Define groups of basic relocations. FIXME: These should 622159047fSniklas be the only basic relocations created by GAS. The rest 632159047fSniklas should be internal to the BFD backend. 642159047fSniklas 652159047fSniklas The idea is both SOM and ELF define these basic relocation 662159047fSniklas types so they map into a SOM or ELF specific relocation 672159047fSniklas as appropriate. This allows GAS to share much more code 682159047fSniklas between the two target object formats. */ 692159047fSniklas 702159047fSniklas #define R_HPPA_NONE R_PARISC_NONE 712159047fSniklas #define R_HPPA R_PARISC_DIR32 722159047fSniklas #define R_HPPA_GOTOFF R_PARISC_DPREL21L 732159047fSniklas #define R_HPPA_PCREL_CALL R_PARISC_PCREL21L 742159047fSniklas #define R_HPPA_ABS_CALL R_PARISC_DIR17F 752159047fSniklas #define R_HPPA_COMPLEX R_PARISC_UNIMPLEMENTED 762159047fSniklas 772159047fSniklas #endif /* _ELF32_HPPA_H */ 78