|
Boost-Build : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-01-08 03:11:00
Kirill Lapshin wrote:
> > I tried it with both msvc-6 and msvc-7.1 (from both bash and cmd)
> > My bjam is build as Boost.Jam Version 3.1.9. OS=CYGWIN.
> > I also noticed # include is not found by the dependency scan.
>
> I think I've seen this error before, but forgot to report it to list.
> Basically msvc toolset is broken for CygWin version of bjam. It works
> fine for MSVC version of bjam though. So quick workaround is to compile
> bjam with msvc.
>
> The problem lies in msvc.jam:
>
>
> if [ os.name ] in NT
> {
> # lots of code skipped
>
> actions archive
> {
> if exist "$(<[1])" DEL "$(<[1])"
> $(.LD) /lib /NOLOGO /out:"$(<[1])" @"$(<[2])"
> }
> }
> else # CYGWIN
> {
> # lots of code skipped
>
> actions archive
> {
> _bbv2_out_="$(<)"
> if test -f "$_bbv2_out_" ; then
> _bbv2_existing_="$(<:W)"
> fi
> $(.LD) /lib /NOLOGO "/out:$(<:W)" $_bbv2_existing_ @"$(>:W)"
> }
> }
>
> As you can see the code for some reason is different. From the log
> posted by Eddie, one can see that _bbv2_out has two elements -- lib file
> and rsp file. Having both /out:foo.lib /out:foo.rsp drives linker crazy.
>
> I think CygWin version has to be rewritten to read
>
> actions archive
> {
> if test -f "$(<[1])" ; then
> rm "$(<[1])"
> fi
> $(.LD) /lib /NOLOGO "/out:$(<[1])" @"$(<[2])"
> }
>
> Disclaimer: this change has not been tested.
Eddy, would you mind trying this out? Or, even better, the following one:
actions archive
{
if test -f "$(<[1])" ; then
rm "$(<[1]:W)"
fi
$(.LD) /lib /NOLOGO "/out:$(<[1]:W)" @"$(<[2]:W)"
}
?
- Volodya
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