Dear GNU make gurus,
I hit a weird error when cygwin make (GNU make v3.79.1 built for i686-pc-cygwin) is used together with Tornado2.2 ccppc. "ccppc -M" to build the dependencies for a source file will cause make to return Error 1 without error message.
I tried the following simple example to illustrate this problem:
------------
z.c
------------
#include <stdio.h>
#include <stdlib.h>
main()
{
printf ("kick!\n");
}
-------------
Makefile
-------------
all:
d:/Tornado2.2/host/x86-win32/bin/ccppc -M z.c > z.x
Using GNU make v3.79.1 built for i686-pc-cygwin, make fails with Error code 1 but without error message:
%which make
/usr/bin/make
%make -v
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for i686-pc-cygwin
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Report bugs to <[EMAIL PROTECTED]>.
%make all
d:/Tornado2.2/host/x86-win32/bin/ccppc -M z.c > z.x
make: *** [all] Error 1
Now execute the ccppc line directly in cygwin, succeed with z.x correctly generated:
%d:/Tornado2.2/host/x86-win32/bin/ccppc -M z.c > z.x
%cat z.x
z.o: z.c d:/Tornado2.2/target/h/stdio.h \
d:/Tornado2.2/target/h/types/vxANSI.h \
d:/Tornado2.2/target/h/types/vxCpu.h \
d:/Tornado2.2/target/h/types/vxArch.h \
d:/Tornado2.2/target/h/arch/ppc/archPpc.h \
d:/Tornado2.2/target/h/arch/ppc/ppc603.h \
d:/Tornado2.2/target/h/arch/ppc/toolPpc.h \
d:/Tornado2.2/target/h/types/vxParams.h \
d:/Tornado2.2/target/h/types/vxTypesBase.h \
d:/Tornado2.2/host/x86-win32/lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/s
tddef.h \
d:/Tornado2.2/target/h/classLib.h d:/Tornado2.2/target/h/vxWorks.h \
d:/Tornado2.2/target/h/types/vxTypes.h \
d:/Tornado2.2/target/h/types/vxTypesOld.h \
d:/Tornado2.2/target/h/sys/types.h \
d:/Tornado2.2/target/h/tool/gnu/toolMacros.h \
d:/Tornado2.2/target/h/vwModNum.h d:/Tornado2.2/target/h/objLib.h \
d:/Tornado2.2/target/h/errno.h d:/Tornado2.2/target/h/memLib.h \
d:/Tornado2.2/target/h/private/objLibP.h \
d:/Tornado2.2/target/h/private/classLibP.h \
d:/Tornado2.2/host/x86-win32/lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/s
tdarg.h \
d:/Tornado2.2/host/x86-win32/lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/v
a-ppc.h \
d:/Tornado2.2/target/h/stdlib.h
We can guess this is a cygwin make bug, because the same line can pass when not executed by make.
Now change Makefile to:
all:
# d:/Tornado2.2/host/x86-win32/bin/ccppc -M z.c > z.x
gcc -M z.c > z.x
Now make succeeds with z.x correctly generated:
%make all
gcc -M z.c > z.x
%cat z.x
z.o: z.c /usr/include/stdio.h /usr/include/_ansi.h \
/usr/include/sys/config.h \
/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h \
/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h \
/usr/include/sys/reent.h /usr/include/time.h \
/usr/include/machine/time.h /usr/include/sys/types.h \
/usr/include/machine/types.h /usr/include/sys/features.h \
/usr/include/cygwin/types.h /usr/include/stdlib.h
We can also guess this is a Tornado2.2 ccppc bug, because cygwin make + gcc doesn't have any problem.
Is this a known issue? Any tips/comments are greatly appreciated!
Best Regards,
Yu
_______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/bug-make