bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

cygwin make (GNU make v3.79.1) incompatibility with Tornado2.2 ccppc


From: Zhang Yu
Subject: cygwin make (GNU make v3.79.1) incompatibility with Tornado2.2 ccppc
Date: Tue, 20 Jul 2004 21:52:15 +0800

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 <address@hidden>.
%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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]