This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: blackbox does not compile with latest cygwin


Larry Hall wrote:

At 12:07 AM 4/27/2004, you wrote:


Igor Pechtchanski wrote:


On Mon, 26 Apr 2004, Carlo Florendo wrote:


Larry Hall wrote:


At 11:28 PM 4/25/2004, you wrote:


Hi,

Now, upon running ./configure on blackbox, all was ok. When I started make, this is the error I got:

Making all in src
Window.cc:1396: error: `assert' undeclared (first use this function)
Window.cc:3234: error: `assert' undeclared (first use this function)


Clearly the problem is that you're missing "#include <assert.h>". That's
likely the result of a configure problem but I didn't investigate to any
great extent so I might be wrong.


Right!  When I added "#include <assert.h>", blackbox compiled clearly.
How come it didn't complain in the past cygwin?  I compiled the same
blackbox at a linux box (without my added "#include <assert.h>") and the
thing built perfectly.  How come the new cygwin behaves differently?

Thanks!

Best Regards,
Carlo


Well, as a WAG, assert.h could have been #included in some standard header
file before, and isn't now. This indicates buggy software, BTW: it
shouldn't rely on anything else including the needed functionality --
that's what the double include guards are for. The rule of thumb is:
"when in doubt, include it". You might want to submit a patch to the
blackbox maintainers.
Igor


I installed the exact blackbox version as last time which is the latest official release.  This latest official release has one file that calls assert() but does not #include it.  I checked its include tree and, as far as I looked, have not found the #include <assert.h> anywhere on the tree. Other files that call assert have the header included in them. The strangest thing is that the same version
compiles under the current linux that I have (Redhat 9.0), the former cygwin, but *not* the latest cygwin.  It compiles with the latest cygwin if I #include <assert.h> on the file in question.

<...snipped...>


There could be many different reasons for this, in theory, as you've surmised. But the only one that matters is the one causing the problem.
If you have access to Linux (which it seems you do), you have the perfect
setup to compare the differences for this package and come to a conclusion.
But I concur with Igor. To me, if a source file uses some facility, it should include what's necessary for that facility. If it doesn't, it's broken.



That's right! I'm not sure if it's correct to assume that header files for the functions one uses should be included always or should be asssumed to be included somewhere else. However, I think the
basic rule still makes sense--to include the header files for the functions used in a program. Thanks Larry for your patience! Now, I could write the blackbox maintainers in peace.


Thanks!

Best Regards,

Carlo
------
Carlo Florendo y Flora
Astra Philippines Inc.
www.astra.ph


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]