Why is fixincludes not doing anything?

rbmj rbmj@verizon.net
Tue May 29 19:13:00 GMT 2012


On 05/25/2012 07:18 PM, Ian Lance Taylor wrote:
> rbmj<rbmj@verizon.net>  writes:
>
>> Maybe that's the error:
>>
>> ./gcc/xgcc -print-sysroot-headers-suffix
>> xgcc: fatal error: not configured with sysroot headers suffix
>>
>> xgcc is the compiler in question right?  . is the build directory.  I
>> believe xgcc is the compiler that compiles all of the cross targets
>> (lib*).
> Yes.
>
>> My configure call was:
>>
>> ../gcc-4.7.0/configure --prefix=/usr --target=powerpc-wrs-vxworks
>> --with-gnu-as --with-gnu-ld
>> --with-headers=../gccdist/WindRiver/vxworks-6.3/target/h
>> --disable-shared --disable-libssp --disable-multilib --with-float=hard
>> --enable-languages=c,c++ --enable-threads=vxworks --without-gconv
>> --disable-libgomp --disable-nls --disable-libmudflap --with-cpu-PPC603
>>
>> I don't use --with-sysroot; I use --with-headers.  So do I need to use
>> a different configuration?  And how can I achieve the same effect
>> using --with-sysroot as I did with --with-headers if that *is* the
>> issue.
> As the installation doc says, the --with-sysroot option is the new
> replacement for the --with-headers option.  So if you can, try using
> --with-sysroot.
>
> Otherwise, I'm not entirely sure.  The Makefile rules for running
> fixincludes are pretty tangled.
OK, so even with --sysroot, I get the following:
$ ./gcc/xgcc -print-sysroot
/opt/powerpc-wrs-vxworks
$ ./gcc/xgcc -print-sysroot-headers-suffix
xgcc: fatal error: not configured with sysroot headers suffix
compilation terminated.

Also, looking at build-x86_64-unknown-linux-gnu/fixincludes/fixinc.sh:
#!/bin/sh
exit 0

And re your earlier comment about the t-* files:
[in gcc/config] $ find | xargs grep STMP_FIXINC
./i386/t-cygming:STMP_FIXINC=stmp-fixinc
./mips/t-sdemtk:STMP_FIXINC = stmp-sdefixinc

AHA!

Looking at mkfixinc.sh:

case $machine in
     i?86-*-cygwin* | \
     i?86-*-mingw32* | \
     x86_64-*-mingw32* | \
     i?86-*-interix* | \
     *-*-vxworks* | \
     powerpc-*-eabisim* | \
     powerpc-*-eabi*    | \
     powerpc-*-rtems*   | \
     powerpcle-*-eabisim* | \
     powerpcle-*-eabi* )
     #  IF there is no include fixing,
     #  THEN create a no-op fixer and exit
     (echo "#! /bin/sh" ; echo "exit 0" ) > ${target}
         ;;

     *)
     cat < ${srcdir}/fixinc.in > ${target} || exit 1
     ;;
esac

That looks like the problem.

So, new question- why is vxWorks disabled from include fixing?

Robert Mason



More information about the Gcc-help mailing list