diff options
author | Ian Lance Taylor <ian@airs.com> | 1995-09-14 19:03:21 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1995-09-14 19:03:21 +0000 |
commit | a208a70f7a1a3418b11203867843fb2218c15d02 (patch) | |
tree | 95f1c1d349d0b2db42c5244ad1b7bf557316c45b /bfd/libcoff.h | |
parent | 4814df240eaff8078a63a412ac405709bd168455 (diff) | |
download | gdb-a208a70f7a1a3418b11203867843fb2218c15d02.zip gdb-a208a70f7a1a3418b11203867843fb2218c15d02.tar.gz gdb-a208a70f7a1a3418b11203867843fb2218c15d02.tar.bz2 |
Convert i960 COFF to use COFF backend linker.
* coff-i960.c (coff_i960_relocate): Use a coff_section_data
structure to store the symbol being used.
(coff_i960_start_final_link): New static function.
(coff_i960_relocate_section): New static function.
(coff_i960_adjust_symndx): New static function.
(coff_start_final_link): Define.
(coff_relocate_section): Define.
(coff_adjust_symndx): Define.
* coffcode.h (bfd_coff_backend_data): Add new callback function
_bfd_coff_start_final_link.
(bfd_coff_start_final_link): Define.
(coff_start_final_link): Define if not defined.
(bfd_coff_std_swap_table): Add coff_start_final_link.
* cofflink.c (_bfd_coff_internal_syment_name): Make globally
visible.
(_bfd_coff_final_link): Call bfd_coff_start_final_link if the
function callback is not NULL.
* libcoff-in.h (struct coff_section_tdata): Add tdata field.
(_bfd_coff_internal_syment_name): Declare.
* libcoff.h: Rebuild.
* configure.in (icoff_big_vec): Add cofflink.o.
(icoff_little_vec): Likewise.
* configure: Rebuild.
Diffstat (limited to 'bfd/libcoff.h')
-rw-r--r-- | bfd/libcoff.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/bfd/libcoff.h b/bfd/libcoff.h index 7053852..8f2a45e 100644 --- a/bfd/libcoff.h +++ b/bfd/libcoff.h @@ -115,6 +115,8 @@ struct coff_section_tdata bfd_byte *contents; /* If this is true, the contents entry may not be freed. */ boolean keep_contents; + /* Available for individual backends. */ + PTR tdata; }; /* An accessor macro for the coff_section_tdata structure. */ @@ -222,6 +224,8 @@ extern void bfd_perform_slip PARAMS ((bfd *abfd, unsigned int slip, extern struct bfd_link_hash_table *_bfd_coff_link_hash_table_create PARAMS ((bfd *)); +extern const char *_bfd_coff_internal_syment_name + PARAMS ((bfd *, const struct internal_syment *, char *)); extern boolean _bfd_coff_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); extern boolean _bfd_coff_final_link @@ -413,6 +417,9 @@ typedef struct struct internal_syment *)); void (*_bfd_coff_compute_section_file_positions) PARAMS (( bfd *abfd)); + boolean (*_bfd_coff_start_final_link) PARAMS (( + bfd *output_bfd, + struct bfd_link_info *info)); boolean (*_bfd_coff_relocate_section) PARAMS (( bfd *output_bfd, struct bfd_link_info *info, @@ -530,6 +537,9 @@ typedef struct ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\ (abfd)) +#define bfd_coff_start_final_link(obfd, info)\ + ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\ + (obfd, info)) #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\ ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\ (obfd, info, ibfd, o, con, rel, isyms, secs)) |