aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-hppa.h
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@cygnus>1993-08-28 00:10:54 +0000
committerKen Raeburn <raeburn@cygnus>1993-08-28 00:10:54 +0000
commitd9ad93bce5cb9be821085233353cbf6baa7e1a2e (patch)
tree1d611bcef298efb57c2f27e3a732cfc571361985 /bfd/elf32-hppa.h
parent78e1e6d95a89375bfcd2f01e963f9edbc67c8b85 (diff)
downloadgdb-d9ad93bce5cb9be821085233353cbf6baa7e1a2e.zip
gdb-d9ad93bce5cb9be821085233353cbf6baa7e1a2e.tar.gz
gdb-d9ad93bce5cb9be821085233353cbf6baa7e1a2e.tar.bz2
More patches from Jeff Law, plus a little cleanup of my own.
These changes separate PA-SOM support from PA-ELF support. A sun4-x-hppaosf assembler can now be built. * elf32-hppa.c (elf_hppa_howto_table): Now static. (symext_rootP, symext_lastP, global_value, GOT_value, global_symbol, global_sym_defined, symextn_contents, symextn_contents_real_size, elf_hppa_stub_rootP, elf32_hppa_symextn_map, elf32_hppa_symextn_map_size): Rely on default initialization. (hppa_elf_gen_reloc_type): Macro "UNDEFINED" doesn't need a trailing semicolon. (hppa_look_for_stubs_in_section): Introduce temporaries to make code more readable in 80 columns. * libhppa.h (all functions): Now inline under GNU C. * elf32-hppa.c (AR_WARN): Give argument which caused the invalid argument relocation. (AR_UNIMP): Delete unused macro. (hppa_elf_set_section_contents): Always return a value. (elf32_hppa_backend_table_processing): Likewise. (elf32_hppa_backend_section_processing: Likewise. * som.c: New file containing SOM specific code extracted from hppa.c * som.h: New file containing SOM specific code extracted from libhppa.h * hppa.c: Deleted. * libhppa.h: Delete SOM specific code. Add generic PA code which can be shared by both SOM and ELF backends. * Makefile.in: Replace hppa.c with som.c. elf32-hppa.o depends on libhppa.h now. * configure.in (hppa_vec): Needs som.o module instead of hppa.o. * elf32-hppa.c: Include libhppa.h. Do not define BYTES_IN_WORD. * elf32-hppa.h (hppa_reloc_field_selector_type): Delete now lives in libhppa.h. (hppa_reloc_field_selector_type_alt): Likewise. * elf32-hppa.c (hppa_elf_relocate_unwind_table): Delete unused variables. (elf_hppa_reloc_type_lookup): Likewise. (elf_hppa_tc_make_sections): Likewise. (hppa_elf_arg_reloc_needed_p): Likewise. (hppa_elf_build_long_branch_stub): Likewise. (elf_reloc_map): Delete, no longer used. (elf_hppa_reloc_map): Likewise. (elf32_hppa_symextn_map_max_size): Likewise. (elf32_hppa_get_sym_extn): Abort if type is bogus. * elf32-hppa.c (elf32_hppa_backend_fake_sections): Add processing of the .hppa_unwind section.
Diffstat (limited to 'bfd/elf32-hppa.h')
-rw-r--r--bfd/elf32-hppa.h52
1 files changed, 3 insertions, 49 deletions
diff --git a/bfd/elf32-hppa.h b/bfd/elf32-hppa.h
index e392eeb..77d5827 100644
--- a/bfd/elf32-hppa.h
+++ b/bfd/elf32-hppa.h
@@ -288,6 +288,7 @@ typedef enum
R_HPPA_EXPR_14, /* pop - 14 */
R_HPPA_EXPR_17, /* pop - 17 */
R_HPPA_EXPR_12, /* pop - 12 */
+ R_HPPA_STUB_CALL_17, /* Symbol + Addend 17 */
R_HPPA_UNIMPLEMENTED /* N/A */
} elf32_hppa_reloc_type;
@@ -308,50 +309,6 @@ typedef enum
#define R_HPPA_COMPLEX_ABS_CALL R_HPPA_PUSH_CONST + 2
-enum hppa_reloc_field_selector_type
-{
- R_HPPA_FSEL = 0x0,
- R_HPPA_LSSEL = 0x1,
- R_HPPA_RSSEL = 0x2,
- R_HPPA_LSEL = 0x3,
- R_HPPA_RSEL = 0x4,
- R_HPPA_LDSEL = 0x5,
- R_HPPA_RDSEL = 0x6,
- R_HPPA_LRSEL = 0x7,
- R_HPPA_RRSEL = 0x8,
- R_HPPA_PSEL = 0x9, /* P' : procedure address for shlib's */
- R_HPPA_LPSEL = 0xa, /* LP' : L' for procedure addresses */
- R_HPPA_RPSEL = 0xb, /* RP' : R' for procedure addresses */
-
- R_HPPA_TSEL = 0xc, /* T' : DLT-relative offset for shlib's */
- R_HPPA_LTSEL = 0xd, /* LT' : L' for DLT-relative offsets */
- R_HPPA_RTSEL = 0xe /* RT' : R' for DLT-relative offsets */
-
-};
-
-#define N_HPPA_FIELD_SELECTORS 15
-
-/* for compatibility */
-enum hppa_reloc_field_selector_type_alt
-{
- e_fsel = R_HPPA_FSEL,
- e_lssel = R_HPPA_LSSEL,
- e_rssel = R_HPPA_RSSEL,
- e_lsel = R_HPPA_LSEL,
- e_rsel = R_HPPA_RSEL,
- e_ldsel = R_HPPA_LDSEL,
- e_rdsel = R_HPPA_RDSEL,
- e_lrsel = R_HPPA_LRSEL,
- e_rrsel = R_HPPA_RRSEL,
- e_psel = R_HPPA_PSEL, /* P' : procedure address for shlib's */
- e_lpsel = R_HPPA_LPSEL, /* LP' : L' for procedure addresses */
- e_rpsel = R_HPPA_RPSEL, /* RP' : R' for procedure addresses */
-
- e_tsel = R_HPPA_TSEL, /* T' : DLT-relative offset for shlib's */
- e_ltsel = R_HPPA_LTSEL, /* LT' : L' for DLT-relative offsets */
- e_rtsel = R_HPPA_RTSEL /* RT' : R' for DLT-relative offsets */
-};
-
/* PA-RISC OPCODES */
#define get_opcode(insn) ((insn) & 0xfc000000) >> 26
@@ -445,8 +402,8 @@ elf32_hppa_reloc_type **hppa_elf_gen_reloc_type ();
#define ELF_TC_FAKE_SECTIONS 1 /* # of "hand_made" tc-specific sections */
#define SYMEXTN_SECTION_NAME ".hppa_symextn"
-extern void EXFUN (elf_hppa_tc_symbol, (bfd *, elf32_symbol_type *, int));
-extern void EXFUN (elf_hppa_tc_make_sections, (bfd *, PTR));
+extern void elf_hppa_tc_symbol PARAMS ((bfd *, elf32_symbol_type *, int));
+extern void elf_hppa_tc_make_sections PARAMS ((bfd *, PTR));
typedef Elf32_Word symext_entryS;
@@ -458,7 +415,4 @@ struct symext_chain
typedef struct symext_chain symext_chainS;
-extern symext_chainS *symext_rootP;
-extern symext_chainS *symext_lastP;
-
#endif /* _ELF32_HPPA_H */