diff -rc binutils-2.17.orig/gas/as.c binutils-2.17/gas/as.c
*** binutils-2.17.orig/gas/as.c	2006-02-09 01:07:41.000000000 +0100
--- binutils-2.17/gas/as.c	2007-04-22 10:48:17.000000000 +0200
***************
*** 347,352 ****
--- 347,355 ----
    --listing-cont-lines    set the maximum number of continuation lines used\n\
                            for the output data column of the listing\n"));
    fprintf (stream, _("\
+   --allow-dollars         always allow dollars in function names\n"));
+ 
+   fprintf (stream, _("\
    @FILE                   read options from FILE\n")); 
  
    md_show_usage (stream);
***************
*** 428,434 ****
        OPTION_AL,
        OPTION_HASH_TABLE_SIZE,
        OPTION_REDUCE_MEMORY_OVERHEADS,
!       OPTION_WARN_FATAL
      /* When you add options here, check that they do
         not collide with OPTION_MD_BASE.  See as.h.  */
      };
--- 431,438 ----
        OPTION_AL,
        OPTION_HASH_TABLE_SIZE,
        OPTION_REDUCE_MEMORY_OVERHEADS,
!       OPTION_WARN_FATAL,
!       OPTION_ALLOW_DOLLARS
      /* When you add options here, check that they do
         not collide with OPTION_MD_BASE.  See as.h.  */
      };
***************
*** 454,459 ****
--- 458,464 ----
      ,{"noexecstack", no_argument, NULL, OPTION_NOEXECSTACK}
  #endif
      ,{"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL}
+     ,{"allow-dollars", no_argument, NULL, OPTION_ALLOW_DOLLARS}
      ,{"gdwarf-2", no_argument, NULL, OPTION_GDWARF2}
      /* GCC uses --gdwarf-2 but GAS uses to use --gdwarf2,
         so we keep it here for backwards compatibility.  */
***************
*** 763,768 ****
--- 768,777 ----
  	  flag_execstack = 1;
  	  flag_noexecstack = 0;
  	  break;
+ 	
+ 	case OPTION_ALLOW_DOLLARS:
+ 	  flag_allow_dollars = 1;
+ 	  break;
  
  	case OPTION_NOEXECSTACK:
  	  flag_noexecstack = 1;
Only in binutils-2.17/gas: as.c~
Only in binutils-2.17/gas: as.c.rej
diff -rc binutils-2.17.orig/gas/as.h binutils-2.17/gas/as.h
*** binutils-2.17.orig/gas/as.h	2006-02-09 12:54:15.000000000 +0100
--- binutils-2.17/gas/as.h	2007-04-22 10:41:00.000000000 +0200
***************
*** 392,397 ****
--- 392,400 ----
  /* True if we are assembling in MRI mode.  */
  COMMON int flag_mri;
  
+ /* True if dollars should always be allowed in function names */
+ COMMON int flag_allow_dollars;
+ 
  /* Should the data section be made read-only and appended to the text
     section?  */
  COMMON unsigned char flag_readonly_data_in_text; /* -R */
diff -rc binutils-2.17.orig/gas/read.c binutils-2.17/gas/read.c
*** binutils-2.17.orig/gas/read.c	2005-11-17 08:29:28.000000000 +0100
--- binutils-2.17/gas/read.c	2007-04-22 10:41:00.000000000 +0200
***************
*** 241,246 ****
--- 241,252 ----
  
    if (flag_mri)
      lex_type['?'] = 3;
+  
+   if (flag_allow_dollars) /* always allow dollars */
+   {
+     lex_type['$'] = 3;
+     is_end_of_line['$'] = 0;
+   }
  }
  
  #ifndef TC_ADDRESS_BYTES
