aboutsummaryrefslogtreecommitdiff
path: root/gas/write.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2007-03-26 12:23:48 +0000
committerAlan Modra <amodra@gmail.com>2007-03-26 12:23:48 +0000
commit05e9452c8210da86b07b621562f4a89bd6f637d4 (patch)
tree993b95704efa783576c4566888567942310a4ac1 /gas/write.h
parent157090f728a99fff42b3d3cc576b0c2a953e9916 (diff)
downloadgdb-05e9452c8210da86b07b621562f4a89bd6f637d4.zip
gdb-05e9452c8210da86b07b621562f4a89bd6f637d4.tar.gz
gdb-05e9452c8210da86b07b621562f4a89bd6f637d4.tar.bz2
* 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 6e691a2..2cc1bdd 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);