* as.c (main): Mark symbols created via the --defsym command line
authorNick Clifton <nickc@redhat.com>
Tue, 30 Jan 2007 14:44:36 +0000 (14:44 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 30 Jan 2007 14:44:36 +0000 (14:44 +0000)
  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.

gas/ChangeLog
gas/as.c
gas/doc/as.texinfo

index ffba5c5..d23030c 100644 (file)
@@ -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 ...
index e1bfb86..39d7c22 100644 (file)
--- 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);
index be21112..fed4213 100644 (file)
@@ -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