Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2003-01-16 16:24:07


"Raoul Gough" <raoulgough_at_[hidden]> writes:

> "William E. Kempf" <wekempf_at_[hidden]> wrote in message
> news:4545.167.16.75.51.1042783593.squirrel_at_frodo.kempf-ville.com...
>> David Abrahams said:
>> > "Raoul Gough" <raoulgough_at_[hidden]> writes:
>> >
>> >> "David Abrahams" <dave_at_[hidden]> wrote in message
>> >> news:ud6n1ruka.fsf_at_boost-consulting.com...
>> >>> "Raoul Gough" <raoulgough_at_[hidden]> writes:
> [snip]
>> >>> > That means it should be possible simply to
>> >>> > use -sBUILD="<cxxflags>-mno-cygwin" with the regular gcc
> toolset,
> [snip]
>> This reveals a problem in Boost.Build, I believe:
>>
>> Script started on Thu Jan 16 09:51:04 2003
>> /home/wekempf/bin already exists...
>>
>>
>>
>> mwekempf_at_WEKEMPFWS
>>
>> $ cd ~/boost/libs/thread/build
>>
>> ~/boost/libs/thread/build
>>
>> mwekempf_at_WEKEMPFWS ~/boost/libs/thread/build
>>
>> $ bjam -sTOOLS=gcc -sBUILD="<cxxflags>-mno-cygwin"
>
> Now that I look at the old gcc-nocygwin-tools.jam file, there is some
> kind of messiness copied from mingw-tools.jam for the linker command.
> It might be better to use:
>
> bjam -sTOOLS=mingw -sBUILD="<cxxflags>-mno-cygwin"
>
> The only proviso would be that your MINGW_ROOT_DIRECTORY is unset or,
> possibly, points (misleadingly) to a Cygwin installation.
>
>>
>> ....found 294 targets...
>>
>> ....updating 15 targets...
> [snip]
>>
>> gcc-dllwrap actions too long (max 2047):
>>
>
> mingw-tools.jam includes the following for the link commands:
>
> # Workaround GCC's lack of command-files and NT's line-length
> limitation.
> if $(NT) {
> JAMSHELL on $(<) = % ;
> }
>
> Don't understand that myself, but maybe it would help.

It prevents the build command from being sent to the command-shell,
going directly to the system instead, as long as it appears on one
line. Makes a difference for gcc toolsets because they don't support
command-files. That's present in gcc-tools.jam as well but whoever
added -mno-cygwin support somehow made sure it wouldn't be used in
that case:

if $(<[2]) && $(NT) && ( -mno-cygwin in $(gBUILD_PROPERTIES:G=) )
{
gcc-dllwrap $(<) : $(>) ;
}
else
{
# Workaround GCC's lack of command-files and NT's line-length limitation.
if $(NT) {
JAMSHELL on $(<) = % ;
}

All you need to do is to move the 2nd if statement outside the first
one.

-- 
David Abrahams
dave_at_[hidden] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution
 

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk