diff --git a/gas/ChangeLog b/gas/ChangeLog index ffba5c5ae3..d23030ce29 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,12 @@ +2007-01-30 Nick Clifton + + * 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 * config/tc-i386.c (swap_imm_operands): Renamed to ... diff --git a/gas/as.c b/gas/as.c index e1bfb86899..39d7c22dfc 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 be21112c66..fed4213f05 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