diff options
author | Ken Raeburn <raeburn@cygnus> | 1993-08-28 00:10:54 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@cygnus> | 1993-08-28 00:10:54 +0000 |
commit | d9ad93bce5cb9be821085233353cbf6baa7e1a2e (patch) | |
tree | 1d611bcef298efb57c2f27e3a732cfc571361985 /bfd/elf32-hppa.h | |
parent | 78e1e6d95a89375bfcd2f01e963f9edbc67c8b85 (diff) | |
download | gdb-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.h | 52 |
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 */ |