aboutsummaryrefslogtreecommitdiff
path: root/bfd/xcofflink.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2009-04-01 19:38:11 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2009-04-01 19:38:11 +0000
commitd286971a6bf52ec49862a488ada6c0566263ad7b (patch)
treee0ed335152a4d4dede7d2af54628e1d832914624 /bfd/xcofflink.c
parentb3d1832c347fbfdf0c816aaa8910fc327c929b02 (diff)
downloadgdb-d286971a6bf52ec49862a488ada6c0566263ad7b.zip
gdb-d286971a6bf52ec49862a488ada6c0566263ad7b.tar.gz
gdb-d286971a6bf52ec49862a488ada6c0566263ad7b.tar.bz2
include/coff/
* xcoff.h (xcoff_link_hash_table): Move to bfd/xcofflink.c. bfd/ * xcofflink.c (xcoff_link_hash_table): Moved from include/coff/xcoff.h.
Diffstat (limited to 'bfd/xcofflink.c')
-rw-r--r--bfd/xcofflink.c61
1 files changed, 61 insertions, 0 deletions
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 6905a3a..1c205f9 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -75,6 +75,67 @@ struct xcoff_link_section_info
} *toc_rel_hashes;
};
+struct xcoff_link_hash_table
+{
+ struct bfd_link_hash_table root;
+
+ /* The .debug string hash table. We need to compute this while
+ reading the input files, so that we know how large the .debug
+ section will be before we assign section positions. */
+ struct bfd_strtab_hash *debug_strtab;
+
+ /* The .debug section we will use for the final output. */
+ asection *debug_section;
+
+ /* The .loader section we will use for the final output. */
+ asection *loader_section;
+
+ /* A count of non TOC relative relocs which will need to be
+ allocated in the .loader section. */
+ size_t ldrel_count;
+
+ /* The .loader section header. */
+ struct internal_ldhdr ldhdr;
+
+ /* The .gl section we use to hold global linkage code. */
+ asection *linkage_section;
+
+ /* The .tc section we use to hold toc entries we build for global
+ linkage code. */
+ asection *toc_section;
+
+ /* The .ds section we use to hold function descriptors which we
+ create for exported symbols. */
+ asection *descriptor_section;
+
+ /* The list of import files. */
+ struct xcoff_import_file *imports;
+
+ /* Required alignment of sections within the output file. */
+ unsigned long file_align;
+
+ /* Whether the .text section must be read-only. */
+ bfd_boolean textro;
+
+ /* Whether -brtl was specified. */
+ bfd_boolean rtld;
+
+ /* Whether garbage collection was done. */
+ bfd_boolean gc;
+
+ /* A linked list of symbols for which we have size information. */
+ struct xcoff_link_size_list
+ {
+ struct xcoff_link_size_list *next;
+ struct xcoff_link_hash_entry *h;
+ bfd_size_type size;
+ }
+ *size_list;
+
+ /* Magic sections: _text, _etext, _data, _edata, _end, end. */
+ asection *special_sections[XCOFF_NUMBER_OF_SPECIAL_SECTIONS];
+};
+
/* Information that we pass around while doing the final link step. */
struct xcoff_final_link_info