aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1998-01-28 18:49:01 +0000
committerIan Lance Taylor <ian@airs.com>1998-01-28 18:49:01 +0000
commit8fb6931a285365089b3e285f13c2f54fcba2a41c (patch)
treea742fce8d2dc51e4a92d5cdd5b604aa3c1f4d57e /gas/config
parent36df40e0bfd939c01dd47e977853a7e67ce65976 (diff)
downloadgdb-8fb6931a285365089b3e285f13c2f54fcba2a41c.zip
gdb-8fb6931a285365089b3e285f13c2f54fcba2a41c.tar.gz
gdb-8fb6931a285365089b3e285f13c2f54fcba2a41c.tar.bz2
* config/obj-coff.h (RESOLVE_SYMBOL_REDEFINITION): Define.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/obj-coff.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/gas/config/obj-coff.h b/gas/config/obj-coff.h
index ed41cd0..0148c63 100644
--- a/gas/config/obj-coff.h
+++ b/gas/config/obj-coff.h
@@ -795,6 +795,18 @@ extern void obj_coff_pe_handle_link_once ();
#endif /* not BFD_ASSEMBLER */
+/* In COFF, if a symbol is defined using .def/.val SYM/.endef, it's OK
+ to redefine the symbol later on. This can happen if C symbols use
+ a prefix, and a symbol is defined both with and without the prefix,
+ as in start/_start/__start in gcc/libgcc1-test.c. */
+#define RESOLVE_SYMBOL_REDEFINITION(sym) \
+(SF_GET_GET_SEGMENT (sym) \
+ ? (sym->sy_frag = frag_now, \
+ S_SET_VALUE (sym, frag_now_fix ()), \
+ S_SET_SEGMENT (sym, now_seg), \
+ 0) \
+ : 0)
+
/* Stabs in a coff file go into their own section. */
#define SEPARATE_STAB_SECTIONS 1