aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog9
-rw-r--r--gas/as.c7
-rw-r--r--gas/doc/as.texinfo4
3 files changed, 18 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ffba5c5..d23030c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,12 @@
+2007-01-30 Nick Clifton <nickc@redhat.com>
+
+ * as.c (main): Mark symbols created via the --defsym command line
+ option as volatile so that they can be overridden later on by a
+ .set directive. This maintains compatibility with the behaviour
+ of earlier versions of the assembler.
+ * doc/as.texinfo (--defsym): Document that the defined symbol's
+ value can be overridden via a .set directive.
+
2076-01-28 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (swap_imm_operands): Renamed to ...
diff --git a/gas/as.c b/gas/as.c
index e1bfb86..39d7c22 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -1,6 +1,6 @@
/* as.c - GAS main program.
Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -1122,6 +1122,11 @@ main (int argc, char ** argv)
sym = symbol_new (defsyms->name, absolute_section, defsyms->value,
&zero_address_frag);
+ /* Make symbols defined on the command line volatile, so that they
+ can be redefined inside a source file. This makes this assembler's
+ behaviour compatible with earlier versions, but it may not be
+ completely intuitive. */
+ S_SET_VOLATILE (sym);
symbol_table_insert (sym);
next = defsyms->next;
free (defsyms);
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index be21112..fed4213 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -501,7 +501,9 @@ other assemblers.
@item --defsym @var{sym}=@var{value}
Define the symbol @var{sym} to be @var{value} before assembling the input file.
@var{value} must be an integer constant. As in C, a leading @samp{0x}
-indicates a hexadecimal value, and a leading @samp{0} indicates an octal value.
+indicates a hexadecimal value, and a leading @samp{0} indicates an octal
+value. The value of the symbol can be overridden inside a source file via the
+use of a @code{.set} pseudo-op.
@item -f
``fast''---skip whitespace and comment preprocessing (assume source is