aboutsummaryrefslogtreecommitdiff
path: root/bfd/libecoff.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/libecoff.h')
-rw-r--r--bfd/libecoff.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/bfd/libecoff.h b/bfd/libecoff.h
index e8af957..939e813 100644
--- a/bfd/libecoff.h
+++ b/bfd/libecoff.h
@@ -71,6 +71,9 @@ struct ecoff_backend_data
/* Do final adjustments to filehdr and aouthdr. */
boolean (*adjust_headers) PARAMS ((bfd *, struct internal_filehdr *,
struct internal_aouthdr *));
+ /* Read an element from an archive at a given file position. This
+ is needed because OSF/1 3.2 uses a weird archive format. */
+ bfd *(*get_elt_at_filepos) PARAMS ((bfd *, file_ptr));
};
/* This is the target specific information kept for ECOFF files. */
@@ -127,6 +130,10 @@ typedef struct ecoff_tdata
/* True if this BFD was written by the backend linker. */
boolean linker;
+ /* True if a warning that multiple global pointer values are
+ needed in the output binary was issued already. */
+ boolean issued_multiple_gp_warning;
+
/* Used by find_nearest_line entry point. The structure could be
included directly in this one, but there's no point to wasting
the memory just for the infrequently called find_nearest_line. */
@@ -197,6 +204,14 @@ struct ecoff_section_tdata
section, and the entry for any reloc that is not PC relative is
zero. */
long *offsets;
+
+ /* When producing an executable (i.e., final, non-relocatable link)
+ on the Alpha, we may need to use multiple global pointer values
+ to span the entire .lita section. In essence, we allow each
+ input .lita section to have its own gp value. To support this,
+ we need to keep track of the gp values that we picked for each
+ input .lita section . */
+ bfd_vma gp;
};
/* An accessor macro for the ecoff_section_tdata structure. */
@@ -269,8 +284,10 @@ extern boolean _bfd_ecoff_slurp_armap PARAMS ((bfd *abfd));
#define _bfd_ecoff_truncate_arname bfd_dont_truncate_arname
extern boolean _bfd_ecoff_write_armap
PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
+#define _bfd_ecoff_read_ar_hdr _bfd_generic_read_ar_hdr
#define _bfd_ecoff_openr_next_archived_file \
bfd_generic_openr_next_archived_file
+#define _bfd_ecoff_get_elt_at_index _bfd_generic_get_elt_at_index
#define _bfd_ecoff_generic_stat_arch_elt bfd_generic_stat_arch_elt
#define _bfd_ecoff_update_armap_timestamp bfd_true