From bb1d425616ac27230436ca1d5aa4158fdfabebbe Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Mon, 27 Jun 2011 10:03:42 +0000 Subject: [PATCH] 2011-06-27 Tristan Gingold * config/obj-evax.c (evax_frob_file_before_adjust): Add comments. Fix style. * config/obj-evax.h (struct alpha_linkage_fixups): Remove seg field. Add comments. (obj_symbol_type, object_headers, OBJ_SYMFIELD_TYPE): Remove --- gas/ChangeLog | 8 ++++++++ gas/config/obj-evax.c | 5 ++++- gas/config/obj-evax.h | 21 ++++++++------------- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index f57a5bf0230..465d8ac2f14 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2011-06-27 Tristan Gingold + + * config/obj-evax.c (evax_frob_file_before_adjust): Add comments. + Fix style. + * config/obj-evax.h (struct alpha_linkage_fixups): Remove seg + field. Add comments. + (obj_symbol_type, object_headers, OBJ_SYMFIELD_TYPE): Remove + 2011-06-26 Richard Sandiford * config/tc-mips.c (fix_24k_record_store_info): If the previous diff --git a/gas/config/obj-evax.c b/gas/config/obj-evax.c index a52b8963ffe..b66e2c3bc59 100644 --- a/gas/config/obj-evax.c +++ b/gas/config/obj-evax.c @@ -153,6 +153,8 @@ evax_frob_file_before_adjust (void) { if (S_GET_SEGMENT (l->fixp->fx_addsy) == alpha_link_section) { + /* The symbol is defined in the file. The linkage entry decays to + two relocs. */ symbolS *entry_sym; fixS *fixpentry, *fixppdesc, *fixtail; @@ -166,7 +168,7 @@ evax_frob_file_before_adjust (void) fixpentry = fix_new (l->fixp->fx_frag, l->fixp->fx_where, 8, entry_sym, l->fixp->fx_offset, 0, BFD_RELOC_64); - fixppdesc = fix_new (l->fixp->fx_frag, l->fixp->fx_where+8, 8, + fixppdesc = fix_new (l->fixp->fx_frag, l->fixp->fx_where + 8, 8, l->fixp->fx_addsy, l->fixp->fx_offset, 0, BFD_RELOC_64); l->fixp->fx_size = 0; @@ -184,6 +186,7 @@ evax_frob_file_before_adjust (void) } else { + /* Assign a linkage index. */ ((struct evax_private_udata_struct *) symbol_get_bfdsym (l->label)->udata.p)->lkindex = linkage_index; diff --git a/gas/config/obj-evax.h b/gas/config/obj-evax.h index 4964bd4c4a9..b7520b77a75 100644 --- a/gas/config/obj-evax.h +++ b/gas/config/obj-evax.h @@ -38,11 +38,18 @@ struct fix; +/* Simply linked list of .linkage. */ struct alpha_linkage_fixups { + /* Next entry. */ struct alpha_linkage_fixups *next; + + /* Corresponding fixup. */ struct fix *fixp; - segT seg; + + /* Label that designates this entry. + Note that a linkage entry can only be designated by one label. + Also, s_alpha_linkage force the creation of a label. */ symbolS *label; }; @@ -60,20 +67,8 @@ struct alpha_linkage_fixups /* #define SYMBOLS_NEED_PACKPOINTERS */ -/* */ -typedef struct - { - void *nothing; - } -obj_symbol_type; /* should be the format's symbol structure */ - -typedef void *object_headers; - #define OBJ_EMIT_LINENO(a,b,c) /* must be *something*. This no-op's it out. */ -/* This field keeps the symbols position in the link section. */ -#define OBJ_SYMFIELD_TYPE valueT - #define obj_symbol_new_hook(s) evax_symbol_new_hook (s) #define obj_frob_symbol(s,p) evax_frob_symbol (s, &p) #define obj_frob_file_before_adjust evax_frob_file_before_adjust -- 2.30.2