aboutsummaryrefslogtreecommitdiff
path: root/bfd/libcoff.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1995-09-14 19:03:21 +0000
committerIan Lance Taylor <ian@airs.com>1995-09-14 19:03:21 +0000
commita208a70f7a1a3418b11203867843fb2218c15d02 (patch)
tree95f1c1d349d0b2db42c5244ad1b7bf557316c45b /bfd/libcoff.h
parent4814df240eaff8078a63a412ac405709bd168455 (diff)
downloadgdb-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.h10
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))