Double backslashes in fixincl header (__FD_ZERO macro)

Bruce Korb bkorb@veritas.com
Fri May 6 02:33:00 GMT 2005


Frank wrote:
> 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:
[[...]]
> 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\

Hi Frank,

I do not know where you got your code, but what you have is not what
was released and not what is under CVS.  Your patch to fixincl.x
will correct the deviation from the released source.  I just downloaded
the distro from ftp.gnu.org:

> $ md5sum *tar.bz2
> d2cbfe8fc3205c1d7969b26377405778  gcc-core-3.4.3.tar.bz2

Good luck.  Regards, Bruce



More information about the Gcc-patches mailing list