diff options
author | Ian Lance Taylor <ian@airs.com> | 1994-04-07 01:48:51 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1994-04-07 01:48:51 +0000 |
commit | ad46bd1d13148db9099ad2ae13c1ae7a63af018a (patch) | |
tree | 61728db63ec1e37d5e6d60a0e8c55c57c32a988f | |
parent | 7e29158a44da13fa052f00fe577dc59aef345b45 (diff) | |
download | gdb-ad46bd1d13148db9099ad2ae13c1ae7a63af018a.zip gdb-ad46bd1d13148db9099ad2ae13c1ae7a63af018a.tar.gz gdb-ad46bd1d13148db9099ad2ae13c1ae7a63af018a.tar.bz2 |
* targets.c (bfd_target): Add fields
_bfd_get_dynamic_symtab_upper_bound,
_bfd_canonicalize_dynamic_symtab,
_bfd_get_dynamic_reloc_upper_bound,
_bfd_canonicalize_dynamic_reloc.
(BFD_JUMP_TABLE_DYNAMIC): Define.
* libbfd-in.h (_bfd_nodynamic_get_dynamic_symtab_upper_bound):
Define.
(_bfd_nodynamic_canonicalize_dynamic_symtab): Define.
(_bfd_nodynamic_get_dynamic_reloc_upper_bound): Define.
(_bfd_nodynamic_canonicalize_dynamic_reloc): Define.
* bfd.c (bfd_get_dynamic_symtab_upper_bound): Define.
(bfd_canonicalize_dynamic_symtab): Define.
(bfd_get_dynamic_reloc_upper_bound): Define.
(bfd_canonicalize_dynamic_reloc): Define.
* bfd-in2.h: Rebuilt.
* libbfd.h: Rebuilt.
-rw-r--r-- | bfd/bfd-in2.h | 51 | ||||
-rw-r--r-- | bfd/targets.c | 33 |
2 files changed, 65 insertions, 19 deletions
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 8b07188..39388eb 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1,5 +1,5 @@ /* Main header file for the bfd library -- portable access to object files. - Copyright 1990, 1991, 1992, 1993 Free Software Foundation, Inc. + Copyright 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. Contributed by Cygnus Support. ** NOTE: bfd.h and bfd-in2.h are GENERATED files. Don't change them; @@ -1887,6 +1887,18 @@ bfd_copy_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd)); #define bfd_free_cached_info(abfd) \ BFD_SEND (abfd, _bfd_free_cached_info, (abfd)) +#define bfd_get_dynamic_symtab_upper_bound(abfd) \ + BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd)) + +#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \ + BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols)) + +#define bfd_get_dynamic_reloc_upper_bound(abfd) \ + BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd)) + +#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \ + BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) + symindex bfd_get_next_mapent PARAMS ((bfd *abfd, symindex previous, carsym **sym)); @@ -2114,16 +2126,33 @@ CAT(NAME,_bfd_final_link) boolean (*_bfd_relax_section) PARAMS ((bfd *, struct sec *, struct bfd_link_info *, boolean *again)); - /* Create a hash table for the linker. Different backends store - different information in this table. */ - struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *)); - - /* Add symbols from this object file into the hash table. */ - boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *)); - - /* Do a link based on the link_order structures attached to each - section of the BFD. */ - boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); + /* Create a hash table for the linker. Different backends store + different information in this table. */ + struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *)); + + /* Add symbols from this object file into the hash table. */ + boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *)); + + /* Do a link based on the link_order structures attached to each + section of the BFD. */ + boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); + + /* Routines to handle dynamic symbols and relocs. */ +#define BFD_JUMP_TABLE_DYNAMIC(NAME)\ +CAT(NAME,_get_dynamic_symtab_upper_bound),\ +CAT(NAME,_canonicalize_dynamic_symtab),\ +CAT(NAME,_get_dynamic_reloc_upper_bound),\ +CAT(NAME,_canonicalize_dynamic_reloc) + /* Get the amount of memory required to hold the dynamic symbols. */ + long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *)); + /* Read in the dynamic symbols. */ + long (*_bfd_canonicalize_dynamic_symtab) + PARAMS ((bfd *, struct symbol_cache_entry **)); + /* Get the amount of memory required to hold the dynamic relocs. */ + long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *)); + /* Read in the dynamic relocs. */ + long (*_bfd_canonicalize_dynamic_reloc) + PARAMS ((bfd *, arelent **, struct symbol_cache_entry **)); PTR backend_data; } bfd_target; diff --git a/bfd/targets.c b/bfd/targets.c index 80d2f21..347264d 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -376,16 +376,33 @@ The general target vector. . boolean (*_bfd_relax_section) PARAMS ((bfd *, struct sec *, . struct bfd_link_info *, boolean *again)); . -. {* Create a hash table for the linker. Different backends store -. different information in this table. *} -. struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *)); +. {* Create a hash table for the linker. Different backends store +. different information in this table. *} +. struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *)); . -. {* Add symbols from this object file into the hash table. *} -. boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *)); +. {* Add symbols from this object file into the hash table. *} +. boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *)); . -. {* Do a link based on the link_order structures attached to each -. section of the BFD. *} -. boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); +. {* Do a link based on the link_order structures attached to each +. section of the BFD. *} +. boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); +. +. {* Routines to handle dynamic symbols and relocs. *} +.#define BFD_JUMP_TABLE_DYNAMIC(NAME)\ +.CAT(NAME,_get_dynamic_symtab_upper_bound),\ +.CAT(NAME,_canonicalize_dynamic_symtab),\ +.CAT(NAME,_get_dynamic_reloc_upper_bound),\ +.CAT(NAME,_canonicalize_dynamic_reloc) +. {* Get the amount of memory required to hold the dynamic symbols. *} +. long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *)); +. {* Read in the dynamic symbols. *} +. long (*_bfd_canonicalize_dynamic_symtab) +. PARAMS ((bfd *, struct symbol_cache_entry **)); +. {* Get the amount of memory required to hold the dynamic relocs. *} +. long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *)); +. {* Read in the dynamic relocs. *} +. long (*_bfd_canonicalize_dynamic_reloc) +. PARAMS ((bfd *, arelent **, struct symbol_cache_entry **)); . Data for use by back-end routines, which isn't generic enough to belong |