failed to build cygwin with itself

zooko zooko@zooko.com
Thu Jul 26 17:19:00 GMT 2007


Dear Folks:

Thank you for cygwin!  It is a tool that I have been using for more  
than a decade now, and I'm glad of its existence.

Recently I patched what I think is a bug in poll(), and I want to  
test my patch before reporting it, but when I follow these instructions:

http://www.cygwin.com/faq/ 
faq.programming.html#faq.programming.building-cygwin

I get this error output:

-------
make[3]: Entering directory `/cygdrive/c/playground/cygwin/build/i686- 
pc-cygwin/winsup/cygwin'
g++  -c -nostdinc++  -DHAVE_CONFIG_H  -O2 -g -O2  -MMD  -fmerge- 
constants -ftracer  -Wall -Wstrict-aliasing -Wwrite-strings -fno- 
common -pipe -fbuiltin -fmessage-length=0  -I. -I/c/playground/cygwin/ 
src/winsup/cygwin/include -I/c/playground/cygwin/src/winsup/cygwin -I/ 
c/playground/cygwin/src/newlib/libc/include -I/c/playground/cygwin/ 
src/winsup/w32api/include -I../../../../src/winsup/cygwin/config/i386  
-I/usr/lib/gcc/i686-pc-cygwin/3.4.4/include -fno-rtti -fno-exceptions  
-o ./assert.o ../../../../src/winsup/cygwin/assert.cc
../../../../src/winsup/cygwin/assert.cc: In function `void __assert 
(const char*, int, const char*)':
../../../../src/winsup/cygwin/assert.cc:26: error: `__assert_func'  
undeclared (first use this function)
../../../../src/winsup/cygwin/assert.cc:26: error: (Each undeclared  
identifier is reported only once for each function it appears in.)
../../../../src/winsup/cygwin/assert.cc: In function `void  
__assert_func(const char*, int, const char*, const char*)':
../../../../src/winsup/cygwin/assert.cc:32: error: `void __assert_func 
(const char*, int, const char*, const char*)' used prior to declaration
-------


The version of g++ that I have here is:

$ g++ --version
g++ (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)


Grep tells me that __assert_func appears in the following places:

-------
$ grep -r assert_func .
./winsup/cygwin/assert.cc:  __assert_func (file, line, NULL,  
failedexpr);
./winsup/cygwin/assert.cc:__assert_func (const char *file, int line,  
const char *func,
./winsup/cygwin/ChangeLog:      * assert.cc (__assert_func): New  
function, to match newlib header
./winsup/cygwin/ChangeLog:      * cygwin.din: Export __assert_func.
./winsup/cygwin/cygwin.din:__assert_func SIGFE
-------

A glance at assert.cc shows that __assert() calls __assert_func(),  
but that __assert_func() is not declared until after __assert() is  
defined.  What gives?

Thanks!

Regards,

Zooko



More information about the Cygwin-developers mailing list