This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: fixincludes "fixes" Xlibint.h in an unknown way.
- From: Richard Guenther <richard dot guenther at gmail dot com>
- To: dclarke at blastwave dot org
- Cc: gcc at gcc dot gnu dot org
- Date: Sat, 7 Feb 2009 20:29:53 +0100
- Subject: Re: fixincludes "fixes" Xlibint.h in an unknown way.
- References: <33491.10.0.66.17.1234031233.squirrel@interact.purplecow.org>
On Sat, Feb 7, 2009 at 7:27 PM, Dennis Clarke <dclarke@blastwave.org> wrote:
>
> This is just a question. Hopefully someone can shed some light on what the
> fixincludes stage of "make install" does. I am making the assumption that
> the "make install" stage is where these headers get mangled or modified.
>
> This is on Solaris 8 by the way.
>
> Once make install has finished its job I see symlinks down deep in strange
> places thus :
>
> $ ls -lap $DEST/lib/gcc/sparc-sun-solaris2.8/4.3.3/include-fixed/ | grep
> "^lrwx"
> lrwxrwxrwx 1 dclarke csw 28 Feb 7 17:19 X11 ->
> root/usr/openwin/include/X11/
> lrwxrwxrwx 1 dclarke csw 22 Feb 7 17:19 Xm ->
> root/usr/dt/include/Xm/
> lrwxrwxrwx 1 dclarke csw 29 Feb 7 17:19 kcms ->
> root/usr/openwin/include/kcms/
> lrwxrwxrwx 1 dclarke csw 28 Feb 7 17:19 xil ->
> root/usr/openwin/include/xil/
>
>
> These guys point to a dir entry called "root" which seems odd also but
> there it is.
>
> Way down deep in there I see this ( for example ) :
>
> $ ls -lap
> $DEST/lib/gcc/sparc-sun-solaris2.8/4.3.3/include-fixed/root/usr/openwin/include/X11/
> total 166
> drwxr-xr-x 3 dclarke csw 512 Feb 7 09:37 ./
> drwxr-xr-x 5 dclarke csw 512 Feb 7 09:37 ../
> drwxr-xr-x 2 dclarke csw 512 Feb 7 09:37 DPS/
> -rw-r--r-- 1 dclarke csw 4087 Feb 7 09:37 Xfuncs.h
> -rw-r--r-- 1 dclarke csw 39002 Feb 7 09:37 Xlibint.h
> -rw-r--r-- 1 dclarke csw 6025 Feb 7 09:37 Xos.h
> -rw-r--r-- 1 dclarke csw 2980 Feb 7 09:37 Xosdefs.h
> -rw-r--r-- 1 dclarke csw 10184 Feb 7 09:37 Xthreads.h
> -rw-r--r-- 1 dclarke csw 8847 Feb 7 09:37 dni.h
> -rw-r--r-- 1 dclarke csw 8366 Feb 7 09:37 nmdefs.h
>
> That all looks to be copies of *standard* headers found in the OS vendors
> /usr/openwin/share/include/X11 area.
>
> What changed ?
>
>
> $ diff /usr/openwin/share/include/X11/Xlibint.h
> $DEST/lib/gcc/sparc-sun-solaris2.8/4.3.3/include-fixed/root/usr/openwin/include/X11/Xlibint.h
> 0a1,9
>> /* DO NOT EDIT THIS FILE.
>>
>> It has been auto-edited by fixincludes from:
>>
>> "/usr/include/X11/Xlibint.h"
>>
>> This had to be done to correct non-standard usages in the
>> original, manufacturer supplied header file. */
>>
> 882c891
> < #ifdef sun /* added by SUNSOFT */
> ---
>> #ifdef __sun__ /* added by SUNSOFT */
>
> So the entire change is a comment and one line which both say "added by
> SUNSOFT" in them.
>
>
> Xfuncs.h is somewhat more interesting :
>
> < #if (__STDC__ && !defined(X_NOT_STDC_ENV) && !defined(sun) &&
> !defined(macII) && !defined(apollo)) || defined(SVR4) || defined(hpux) ||
> defined(_IBMR2) || defined(_SEQUENT_)
> ---
>> #if (__STDC__ && !defined(X_NOT_STDC_ENV) && !defined(__sun__) &&
> !defined(macII) && !defined(apollo)) || defined(SVR4) || defined(hpux)
> || defined(_IBMR2) || defined(_SEQUENT_)
> 88c97
> < #if !defined(X_NOT_STDC_ENV) && (!defined(sun) || defined(SVR4))
> ---
>> #if !defined(X_NOT_STDC_ENV) && (!defined(__sun__) || defined(SVR4))
> 96c105
> < #if defined(SYSV) || defined(luna) || defined(sun) || defined(__sxg__)
> ---
>> #if defined(SYSV) || defined(luna) || defined(__sun__) || defined(__sxg__)
> $
>
> It looks like anywhere you find the string "defined(sun)" you change it to
> "defined(__sun__)".
>
> That is an observation.
>
> But what did this ?
>
> Was it fixincludes or was it the mkheaders script ?
>
> and why ?
Because system headers should not define something in the users namespace,
certainly not a non-uglified three-letter name such as "sun".
Consider
#include <Xlibint.h>
int sun;
which will not build otherwise.
Richard.
>
> --
> Dennis Clarke
>
>