xref: /openbsd-src/gnu/usr.bin/binutils/bfd/elf32-hppa.h (revision 007c2a4539b8b8aaa95c5e73e77620090abe113b)
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