Boost logo

Boost :

Subject: Re: [boost] [1.51.0] Beta 1 release candidates available
From: Pekka Seppänen (pekka.seppanen_at_[hidden])
Date: 2012-08-01 08:18:38


On 1.8.2012 5:40, Marshall Clow wrote:
> Release candidate files for 1.51.0 beta 1 are available at
> http://boost.cowic.de/rc/
>
> As always, the release managers would appreciate it if you download
> the candidate of your choice and give building it a try. Please report
> both success and failure, and anything else that is noteworthy.
>
> This helps ensure the candidates build OK before we push them out to
> SourceForge.

Hello,

at least MSVC (could be others, too, this is a compiler specific jam-file
issue) fails to fully compile Boost.Context if there's any user specified
preprocessor define passed to B2 that has characters that command prompt may
interpter as control characters, e.g.
``define=BOOST_USER_CONFIG="<SuperiorConfig>"'' that is.

The problem lies in how tools\build\v2\tools\msvc.jam handles .ASM (and .RC
files, too, not that Boost yet uses any during the build) files:

line 314:
        actions compile.asm
        {
            $(.ASM) -c -Zp4 -Cp -Cx -D$(DEFINES) $(ASMFLAGS) $(USER_ASMFLAGS) -Fo
"$(<:W)" "$(>:W)"
        }

As command line is not passed thru a .RSP file (just a normal text file where
the rest of the command line arguments are read) unlike compile.asm's (and
.rc's) counterparts do, characters such as "<" and ">" affect the control
flow, which in this case is not what user wants (at least not what *I* want :D).

So, as a fix I propose that either do a full .RSP treatment or simply enclose
defines inside a double quotes ("-D$(DEFINES)"); That should fix it.

(Not sure if $(INCLUDES) should be passed to $(.ASM), in this particular
example it's the not the root cause anyway [<SuperiorConfig> not being found
due to missing include path] as no .ASM file currently actually includes any
[external] file.)

-- Pekka


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk