bug-make
[Top][All Lists]
Advanced

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

Possible bug with make: make + ccppc + STDERR


From: Chris Whitehead
Subject: Possible bug with make: make + ccppc + STDERR
Date: Tue, 14 Oct 2003 12:02:47 -0700

Hi,

I've discovered some odd behaviour with make v3.79.1 as included with the 
CygWin development tools package.

When calling ccppc (a PowerPC cross-compiler) via make, any error messages 
generated by ccppc do not get printed. It seems like make is somehow 
redirecting the STDERR stream so that anything printed to STDERR does not get 
printed on-screen.

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 file being compiled does not exist. This should thus produce a 
file not found error.

The script I am using to call make uses 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 results as captured in test_make.log are:

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

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

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

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
======================================

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

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.

Any assistance you could provide would be most appreciated.

Thanks,

Chris Whitehead
[ Wireless Software Development Engineer ]
Spectrum Signal Processing Inc.

604.421.5422 ext. 211
address@hidden
http://www.spectrumsignal.com

Confidential information may be contained in this message. If you are not the 
addressee indicated in this message, then please delete this message and kindly 
notify the sender by reply e-mail.




reply via email to

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