Hi,

I've discovered some odd behaviour with make v3.79.1 as included with the CygWin 
development tools package. I've searched the web and checked the make manual, but have 
not been able to find anything helpful so far.

When calling ccppc (a PowerPC cross-compiler supplied as part of the Tornado VxWorks 
Development Tools from WindRiver) via make, any error messages generated by ccppc do 
not get printed. Any error messages I would expect to be printed via STDERR do not get 
printed.

I have tried calling gcc instead of ccppc and saw all expected error messages. I also 
tried using a different version of make (v3.74 as shipped with Tornado 2.2) with both 
ccppc and gcc. In both cases I saw the expected error messages.

It is only the combination of make 3.79.1 (from Cygwin) and ccppc that appears to 
suffer from this issue. Naturally, this is the combination of tools I require. ;-)

The make file I am using contains the following:

---------------------------------------------------------------------------

MY_PPC_COMPILER = ccppc
MY_GNU_COMPILER = gcc

ifeq ($(FOR_PPC), 1)
        COMPILE = $(MY_PPC_COMPILER)
else
        COMPILE = $(MY_GNU_COMPILER)
endif

all :
        $(COMPILE) -c -o client.o client.cpp

---------------------------------------------------------------------------

Note that the source file being compiled does not exist. This should thus produce a 
file not found error.

The script I am using to call make issues the following commands:

---------------------------------------------------------------------------

echo ======================================
echo Test Cygwin make with GCC
echo ======================================
c:/cygwin/bin/make --debug=v
echo ======================================
echo

echo ======================================
echo Test Cygwin make with CCPPC
echo ======================================
c:/cygwin/bin/make FOR_PPC=1 --debug=v
echo ======================================
echo

echo ======================================
echo Test Tornado make with GCC
echo ======================================
$WIND_BASE/host/x86-win32/bin/make -v
$WIND_BASE/host/x86-win32/bin/make
echo ======================================
echo

echo ======================================
echo Test Tornado make with CCPPC
echo ======================================
$WIND_BASE/host/x86-win32/bin/make FOR_PPC=1 -v
$WIND_BASE/host/x86-win32/bin/make FOR_PPC=1
echo ======================================
echo

echo ======================================
echo Just calling CCPPC without make
echo ======================================
ccppc -c -o client.o client.cpp
echo ======================================
echo

---------------------------------------------------------------------------

I am calling the script via a batch file whose contents are as follows:

---------------------------------------------------------------------------

bash test_make.sh > test_make.log 2>&1

---------------------------------------------------------------------------

The output captured in test_make.log is as follows:

---------------------------------------------------------------------------

======================================
Test Cygwin make with GCC
======================================
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]>.

Reading makefiles...
Reading makefile `makefile'...
Updating goal targets....
Considering target file `all'.
 File `all' does not exist.
 Finished prerequisites of target file `all'.
Must remake target `all'.
gcc -c -o client.o client.cpp
gcc: client.cpp: No such file or directory
gcc: no input files
make: *** [all] Error 1
======================================

======================================
Test Cygwin make with CCPPC
======================================
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]>.

Reading makefiles...
Reading makefile `makefile'...
Updating goal targets....
Considering target file `all'.
 File `all' does not exist.
 Finished prerequisites of target file `all'.
Must remake target `all'.
ccppc -c -o client.o client.cpp
make: *** [all] Error 1
======================================

======================================
Test Tornado make with GCC
======================================
GNU Make version 3.74 (vpath+), by Richard Stallman and Roland McGrath.
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95 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.

gcc -c -o client.o client.cpp
gcc: client.cpp: No such file or directory
gcc: no input files
make.exe: *** [all] Error 0x1
======================================

======================================
Test Tornado make with CCPPC
======================================
GNU Make version 3.74 (vpath+), by Richard Stallman and Roland McGrath.
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95 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.

ccppc -c -o client.o client.cpp
ccppc: client.cpp: No such file or directory
ccppc: No input files
make.exe: *** [all] Error 0x1
======================================

======================================
Just calling CCPPC without make
======================================
ccppc: client.cpp: No such file or directory
ccppc: No input files
======================================

---------------------------------------------------------------------------

No additional output is printed to the console window.

As shown by the log file, the expected errors are not printed when ccppc is called 
from make 3.79.1. My suspicion is that this a problem with make, though it's quite 
possible that this is a ccppc issue, or perhaps a problem with both make and ccppc. I 
have verified that the error output from ccppc is printed via STDERR. Interestingly, 
the output from gcc is also printed via STDERR.

I'm using Windows 2000 with SP4, though I have seen the same problem with SP3 as well. 
I have tried using the version of ccppc shipped with multiple versions of Tornado 
(v2.0, v2.02, v2.1, v2.2, v2.2.1) and saw the same missing output with all versions. 
The version number for my copy of cygwin1.dll is "1.3.22-dontuse-21".

Any assistance would be most appreciated.

Thanks,

Chris Whitehead

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to