Fixing the state of C++ in Cygwin

Charles Wilson cygwin@cwilson.fastmail.fm
Thu Apr 27 13:27:00 GMT 2006


Dave Korn wrote:
>> The bash script that does the build will not even run due an error with
>> an extra "&& )" into the install2 option. There is also a problem with a
>> libstdc++ Makefile that might be caused by an error in bash, itself.
> 
>   This sounds like an error in your configure arguments getting transcribed
> into the generated makefiles to me.  It's not an extra '&& )', it's something
> missing between the '&&' and the ')' that's the real problem, and that
> probably happened because a shell variable used to generate the output from
> that stage of configure ended up being empty because of a failure of a
> pattern-match earlier on because of a mis-spelt option.  (Well, for example.)
> Configure scripts aren't terribly robust against syntax issues and
> metacharacters, let's just hope nobody ever invents a target triplet with
> backtick-rm-dash-rf-star-backtick in it![*]

No, Dave, he's talking about a problem in the cygwin build script for 
gcc, which is derived from the generic-build-script.  It has a syntax 
error that became exposed when /bin/sh was switched from ash to bash. 
It should just be fixed by editing the script.  End of problem.

>> The reason why the source files have not been patched already
>> is bothersome in itself.

Bothersome?  No way.  I WANT to know what all the official cygwin 
maintainer had to do to get the code to compile and work properly on 
cygwin -- rather than having to download the "cygwin patched source" and 
the "pristine original source" and then doing a diff.  This is 
especially true when the cygwin maintainer had to do a autotools update, 
and the blindly-generated diff contains a lot of autogenerated stuff 
rather than just the important bits.

>> I do not have a clue whether a particular patch
>> should be reversed or not before being applied, in ada, for example. I
>> just accepted the default and hoped for the best.
> 
>   You probably shouldn't be patching anything at all.  Gcc should build for
> cygwin OOTB; there are cygwin-specific patches that add things like
> -mno-cygwin, but the basic compiler should be fine as it stands.

Oh, sure, that'll work.  Except, you know, some of those patches are 
kind of important: like allowing your C++ code to throw exceptions in 
DLLs which can then be caught by your application.  etc.etc.

The whole point of the cygwin packaging system is that SUPPOSEDLY, if 
you use the packaged script, you can rebuild the package exactly as the 
official distributed one was built.



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



More information about the Cygwin mailing list