public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* Double backslashes in fixed header (__FD_ZERO macro)
@ 2005-05-05  1:23 Frank Heckenbach
  0 siblings, 0 replies; only message in thread
From: Frank Heckenbach @ 2005-05-05  1:23 UTC (permalink / raw)
  To: gcc-bugs, gcc-patches, bkorb

gcc-3.4.3 contains an incorrect header fix for "the __FD_ZERO macro
present in glibc 1.x". The file installed in
<prefix>/lib/gcc/i686-pc-linux-gnulibc1/3.4.3/include/gnu/types.h
contains the following, with spurious double-backslashes:

/*  DO NOT EDIT THIS FILE.

    It has been auto-edited by fixincludes from:

	"/usr/include/gnu/types.h"

    This had to be done to correct non-standard usages in the
    original, manufacturer supplied header file.  */

/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */
#ifndef _TYPES_H_WRAPPER
#include <features.h>
#include_next <gnu/types.h>

#if defined(__FD_ZERO) && !defined(__GLIBC__)
#undef __FD_ZERO
# define __FD_ZERO(fdsetp) \\
  do { \\
    int __d0, __d1; \\
__asm__ __volatile__("cld ; rep ; stosl" \\
        	: "=&c" (__d0), "=&D" (__d1) \\
        	: "a" (0), "0" (__FDSET_LONGS), \\
  "1" ((__fd_set *) (fdsetp)) :"memory"); \\
  } while (0)
#endif

#define _TYPES_H_WRAPPER
#endif /* _TYPES_H_WRAPPER */

This patch fixes the issue for me:

--- gcc-3.4.3/gcc/fixinc/fixincl.x.orig	Sat Aug 14 18:38:10 2004
+++ gcc-3.4.3/gcc/fixinc/fixincl.x	Thu May  5 02:28:20 2005
@@ -124,13 +124,13 @@
 #include_next <gnu/types.h>\n\n\
 #if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
 #undef __FD_ZERO\n\
-# define __FD_ZERO(fdsetp) \\\\\n\
-  do { \\\\\n\
-    int __d0, __d1; \\\\\n\
-__asm__ __volatile__(\"cld ; rep ; stosl\" \\\\\n\
-        \t: \"=&c\" (__d0), \"=&D\" (__d1) \\\\\n\
-        \t: \"a\" (0), \"0\" (__FDSET_LONGS), \\\\\n\
-  \"1\" ((__fd_set *) (fdsetp)) :\"memory\"); \\\\\n\
+# define __FD_ZERO(fdsetp) \\\n\
+  do { \\\n\
+    int __d0, __d1; \\\n\
+__asm__ __volatile__(\"cld ; rep ; stosl\" \\\n\
+        \t: \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
+        \t: \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\
+  \"1\" ((__fd_set *) (fdsetp)) :\"memory\"); \\\n\
   } while (0)\n\
 #endif\n\n\
 #define _TYPES_H_WRAPPER\n\

The following is probably the correct patch (which I can't readily
check as I don't have autogen installed):

--- gcc-3.4.3/gcc/fixinc/inclhack.def.orig	Sat Aug 14 18:38:10 2004
+++ gcc-3.4.3/gcc/fixinc/inclhack.def	Thu May  5 02:46:20 2005
@@ -82,13 +82,13 @@
 
 	#if defined(__FD_ZERO) && !defined(__GLIBC__)
 	#undef __FD_ZERO
-	# define __FD_ZERO(fdsetp) \\
-	  do { \\
-	    int __d0, __d1; \\
-		__asm__ __volatile__("cld ; rep ; stosl" \\
-        	: "=&c" (__d0), "=&D" (__d1) \\
-        	: "a" (0), "0" (__FDSET_LONGS), \\
-		  "1" ((__fd_set *) (fdsetp)) :"memory"); \\
+	# define __FD_ZERO(fdsetp) \
+	  do { \
+	    int __d0, __d1; \
+		__asm__ __volatile__("cld ; rep ; stosl" \
+        	: "=&c" (__d0), "=&D" (__d1) \
+        	: "a" (0), "0" (__FDSET_LONGS), \
+		  "1" ((__fd_set *) (fdsetp)) :"memory"); \
 	  } while (0)
 	#endif

The same issue might affect "the __FD_ZERO macro present in glibc
2.0.x." and other places, but I can't readily test them.

Frank

-- 
Frank Heckenbach, frank@g-n-u.de
http://fjf.gnu.de/
GnuPG and PGP keys: http://fjf.gnu.de/plan (7977168E)


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-05-05  1:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-05  1:23 Double backslashes in fixed header (__FD_ZERO macro) Frank Heckenbach

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).