diff -r -u binutils-2.15/bfd/configure.in avr-binutils-2.15tinyos/bfd/configure.in --- binutils-2.15/bfd/configure.in 2004-05-17 21:35:57.000000000 +0200 +++ avr-binutils-2.15tinyos/bfd/configure.in 2005-03-25 20:37:01.000000000 +0100 @@ -7,7 +7,7 @@ AC_CANONICAL_SYSTEM AC_ISC_POSIX -AM_INIT_AUTOMAKE(bfd, 2.15) +AM_INIT_AUTOMAKE(bfd, 2.15-tinyos) # Uncomment the next line to remove the date from the reported bfd version is_release=y diff -r -u binutils-2.15/gas/config/tc-avr.h avr-binutils-2.15tinyos/gas/config/tc-avr.h --- binutils-2.15/gas/config/tc-avr.h 2002-09-05 02:01:17.000000000 +0200 +++ avr-binutils-2.15tinyos/gas/config/tc-avr.h 2005-05-20 21:03:31.000000000 +0200 @@ -113,8 +113,12 @@ would print `12 34 56 78'. The default value is 4. */ #define LISTING_WORD_SIZE 2 -/* AVR port uses `$' as a logical line separator */ -#define LEX_DOLLAR 0 +/* AVR port uses `$' as a logical line separator and doesn't + allow it in symbols. We allow it in the middle of symbols. + We also hack get_symbol_end to disallow it at the end of a symbol. */ +#define LEX_DOLLAR 1 +#define TC_EOL_IN_INSN(PTR) (*(PTR) == '$' && is_part_of_name((PTR)[-1]) && is_part_of_name((PTR)[1])) +#define TC_FORBID_DOLLAR_AT_END /* An `.lcomm' directive with no explicit alignment parameter will use this macro to set P2VAR to the alignment that a request for diff -r -u binutils-2.15/gas/config/tc-msp430.h avr-binutils-2.15tinyos/gas/config/tc-msp430.h --- binutils-2.15/gas/config/tc-msp430.h 2002-12-30 20:25:07.000000000 +0100 +++ avr-binutils-2.15tinyos/gas/config/tc-msp430.h 2005-03-25 20:37:46.000000000 +0100 @@ -101,7 +101,7 @@ example, a value of 2 might print `1234 5678' where a value of 1 would print `12 34 56 78'. The default value is 4. */ -#define LEX_DOLLAR 0 +#undef LEX_DOLLAR /* MSP430 port does not use `$' as a logical line separator */ #define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR) (P2VAR) = 0 Only in avr-binutils-2.15tinyos/gas/doc: as.info diff -r -u binutils-2.15/gas/expr.c avr-binutils-2.15tinyos/gas/expr.c --- binutils-2.15/gas/expr.c 2004-05-17 21:36:07.000000000 +0200 +++ avr-binutils-2.15tinyos/gas/expr.c 2005-05-20 21:04:11.000000000 +0200 @@ -1900,6 +1900,15 @@ ; if (is_name_ender (c)) c = *input_line_pointer++; +#ifdef TC_FORBID_DOLLAR_AT_END + /* This is for the Atmel AVR platforms. We want to allow $ in symbols + but also as a line separator. Yucky. */ + if (input_line_pointer[-2] == '$') + { + input_line_pointer--; + c = '$'; + } +#endif } *--input_line_pointer = 0; return (c);