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