diff -durN binutils-2.18.orig/gas/config/tc-i386.c binutils-2.18/gas/config/tc-i386.c
--- binutils-2.18.orig/gas/config/tc-i386.c	2007-08-24 16:01:22.000000000 +0200
+++ binutils-2.18/gas/config/tc-i386.c	2008-09-22 08:11:42.000000000 +0200
@@ -180,24 +180,10 @@
 #endif
 	;
 
-#if (defined (TE_I386AIX)				\
-     || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))	\
-	 && !defined (TE_GNU)				\
-	 && !defined (TE_LINUX)				\
- 	 && !defined (TE_NETWARE)			\
-	 && !defined (TE_FreeBSD)			\
-	 && !defined (TE_NetBSD)))
 /* This array holds the chars that always start a comment.  If the
-   pre-processor is disabled, these aren't very useful.  The option
-   --divide will remove '/' from this list.  */
-const char *i386_comment_chars = "#/";
-#define SVR4_COMMENT_CHARS 1
-#define PREFIX_SEPARATOR '\\'
-
-#else
+   pre-processor is disabled, these aren't very useful.  */
 const char *i386_comment_chars = "#";
 #define PREFIX_SEPARATOR '/'
-#endif
 
 /* This array holds the chars that only start a comment at the beginning of
    a line.  If the line seems to have the form '# 123 filename'
@@ -6061,20 +6047,6 @@
       break;
 
     case OPTION_DIVIDE:
-#ifdef SVR4_COMMENT_CHARS
-      {
-	char *n, *t;
-	const char *s;
-
-	n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
-	t = n;
-	for (s = i386_comment_chars; *s != '\0'; s++)
-	  if (*s != '/')
-	    *t++ = *s;
-	*t = '\0';
-	i386_comment_chars = n;
-      }
-#endif
       break;
 
     case OPTION_MARCH:
@@ -6142,13 +6114,8 @@
   fprintf (stream, _("\
   --32/--64               generate 32bit/64bit code\n"));
 #endif
-#ifdef SVR4_COMMENT_CHARS
-  fprintf (stream, _("\
-  --divide                do not treat `/' as a comment character\n"));
-#else
   fprintf (stream, _("\
   --divide                ignored\n"));
-#endif
   fprintf (stream, _("\
   -march=CPU/-mtune=CPU   generate code/optimize for CPU, where CPU is one of:\n\
                            i386, i486, pentium, pentiumpro, pentium4, nocona,\n\
