1*3d8817e4Smiod /* ELF32/HPPA support 2*3d8817e4Smiod 3*3d8817e4Smiod This file contains ELF32/HPPA relocation support as specified 4*3d8817e4Smiod in the Stratus FTX/Golf Object File Format (SED-1762) dated 5*3d8817e4Smiod February 1994. 6*3d8817e4Smiod 7*3d8817e4Smiod Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 8*3d8817e4Smiod 2002, 2003 Free Software Foundation, Inc. 9*3d8817e4Smiod 10*3d8817e4Smiod Written by: 11*3d8817e4Smiod 12*3d8817e4Smiod Center for Software Science 13*3d8817e4Smiod Department of Computer Science 14*3d8817e4Smiod University of Utah 15*3d8817e4Smiod 16*3d8817e4Smiod This file is part of BFD, the Binary File Descriptor library. 17*3d8817e4Smiod 18*3d8817e4Smiod This program is free software; you can redistribute it and/or modify 19*3d8817e4Smiod it under the terms of the GNU General Public License as published by 20*3d8817e4Smiod the Free Software Foundation; either version 2 of the License, or 21*3d8817e4Smiod (at your option) any later version. 22*3d8817e4Smiod 23*3d8817e4Smiod This program is distributed in the hope that it will be useful, 24*3d8817e4Smiod but WITHOUT ANY WARRANTY; without even the implied warranty of 25*3d8817e4Smiod MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 26*3d8817e4Smiod GNU General Public License for more details. 27*3d8817e4Smiod 28*3d8817e4Smiod You should have received a copy of the GNU General Public License 29*3d8817e4Smiod along with this program; if not, write to the Free Software 30*3d8817e4Smiod Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 31*3d8817e4Smiod 32*3d8817e4Smiod #ifndef _ELF32_HPPA_H 33*3d8817e4Smiod #define _ELF32_HPPA_H 34*3d8817e4Smiod 35*3d8817e4Smiod #include "elf-bfd.h" 36*3d8817e4Smiod #include "libhppa.h" 37*3d8817e4Smiod #include "elf/hppa.h" 38*3d8817e4Smiod 39*3d8817e4Smiod int elf32_hppa_setup_section_lists 40*3d8817e4Smiod (bfd *, struct bfd_link_info *); 41*3d8817e4Smiod 42*3d8817e4Smiod void elf32_hppa_next_input_section 43*3d8817e4Smiod (struct bfd_link_info *, asection *); 44*3d8817e4Smiod 45*3d8817e4Smiod bfd_boolean elf32_hppa_size_stubs 46*3d8817e4Smiod (bfd *, bfd *, struct bfd_link_info *, bfd_boolean, bfd_signed_vma, 47*3d8817e4Smiod asection * (*) (const char *, asection *), void (*) (void)); 48*3d8817e4Smiod 49*3d8817e4Smiod bfd_boolean elf32_hppa_set_gp 50*3d8817e4Smiod (bfd *, struct bfd_link_info *); 51*3d8817e4Smiod 52*3d8817e4Smiod bfd_boolean elf32_hppa_build_stubs 53*3d8817e4Smiod (struct bfd_link_info *); 54*3d8817e4Smiod 55*3d8817e4Smiod elf_hppa_reloc_type elf32_hppa_reloc_final_type 56*3d8817e4Smiod (bfd *, elf_hppa_reloc_type, int, unsigned int); 57*3d8817e4Smiod 58*3d8817e4Smiod extern elf_hppa_reloc_type ** _bfd_elf32_hppa_gen_reloc_type 59*3d8817e4Smiod (bfd *, elf_hppa_reloc_type, int, unsigned int, int, asymbol *); 60*3d8817e4Smiod 61*3d8817e4Smiod /* Define groups of basic relocations. FIXME: These should 62*3d8817e4Smiod be the only basic relocations created by GAS. The rest 63*3d8817e4Smiod should be internal to the BFD backend. 64*3d8817e4Smiod 65*3d8817e4Smiod The idea is both SOM and ELF define these basic relocation 66*3d8817e4Smiod types so they map into a SOM or ELF specific relocation 67*3d8817e4Smiod as appropriate. This allows GAS to share much more code 68*3d8817e4Smiod between the two target object formats. */ 69*3d8817e4Smiod 70*3d8817e4Smiod #define R_HPPA_NONE R_PARISC_NONE 71*3d8817e4Smiod #define R_HPPA R_PARISC_DIR32 72*3d8817e4Smiod #define R_HPPA_GOTOFF R_PARISC_DPREL21L 73*3d8817e4Smiod #define R_HPPA_PCREL_CALL R_PARISC_PCREL21L 74*3d8817e4Smiod #define R_HPPA_ABS_CALL R_PARISC_DIR17F 75*3d8817e4Smiod #define R_HPPA_COMPLEX R_PARISC_UNIMPLEMENTED 76*3d8817e4Smiod 77*3d8817e4Smiod #endif /* _ELF32_HPPA_H */ 78