aboutsummaryrefslogtreecommitdiff
path: root/gas
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
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')
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/obj-coff.h12
2 files changed, 16 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 67ed5c5..3d3edd3 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+Wed Jan 28 13:48:08 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ * config/obj-coff.h (RESOLVE_SYMBOL_REDEFINITION): Define.
+
Fri Jan 28 10:18:06 1998 Bill Moyer <billm@cygnus.com>
* as.h (flag_warn_instructionswap): added new flag variable.
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