diff -durN binutils-2.17.orig/gas/config/tc-i386.c binutils-2.17/gas/config/tc-i386.c
--- binutils-2.17.orig/gas/config/tc-i386.c	2006-04-07 08:40:57.000000000 +0200
+++ binutils-2.17/gas/config/tc-i386.c	2008-09-22 09:06:07.000000000 +0200
@@ -196,24 +196,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'
@@ -5486,20 +5472,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;
 
     default:
@@ -5525,13 +5497,8 @@
   fprintf (stream, _("\
   -s                      ignored\n"));
 #endif
-#ifdef SVR4_COMMENT_CHARS
-  fprintf (stream, _("\
-  --divide                do not treat `/' as a comment character\n"));
-#else
   fprintf (stream, _("\
   --divide                ignored\n"));
-#endif
 }
 
 #if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \
