summaryrefslogtreecommitdiff
path: root/gas/write.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2007-03-26 12:23:48 +0000
committerAlan Modra <amodra@bigpond.net.au>2007-03-26 12:23:48 +0000
commit1ed61dc2ede4fa4bcaa9b714a94331037e7c0798 (patch)
tree7f8af4085fe5da748ef86d150ffb82ab8ec48020 /gas/write.h
parentdd3ab927f194515b58e2800434e6b929f88b46fa (diff)
downloadbinutils-redhat-1ed61dc2ede4fa4bcaa9b714a94331037e7c0798.tar.gz
* doc/as.texinfo (Reloc): Document.
* read.c (potable): Add "reloc". (s_reloc): New function. * write.c (reloc_list): New global var. (resolve_reloc_expr_symbols): New function. (write_object_file): Call it. (write_relocs): Process reloc_list. * write.h (struct reloc_list): New. (reloc_list): Declare.
Diffstat (limited to 'gas/write.h')
-rw-r--r--gas/write.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/gas/write.h b/gas/write.h
index 6e691a22a3..2cc1bdd73a 100644
--- a/gas/write.h
+++ b/gas/write.h
@@ -142,11 +142,35 @@ struct fix
typedef struct fix fixS;
+struct reloc_list
+{
+ struct reloc_list *next;
+ union
+ {
+ struct
+ {
+ symbolS *offset_sym;
+ reloc_howto_type *howto;
+ symbolS *sym;
+ bfd_vma addend;
+ } a;
+ struct
+ {
+ asection *sec;
+ asymbol *s;
+ arelent r;
+ } b;
+ } u;
+ char *file;
+ unsigned int line;
+};
+
extern int finalize_syms;
extern symbolS *abs_section_sym;
extern addressT dot_value;
extern long string_byte_count;
extern int section_alignment[];
+extern struct reloc_list* reloc_list;
extern void append (char **charPP, char *fromP, unsigned long length);
extern void record_alignment (segT seg, int align);