Boost logo

Boost-Build :

Subject: Re: [Boost-build] bjam - win - ordering of obj files
From: Vladimir Prus (ghost_at_[hidden])
Date: 2009-12-17 01:40:35


On Saturday 12 December 2009 19:11:36 Anant Rao wrote:

> Hi,
>
> My jamfile is like this on Windows to generate a dll.
>
> lib blah
> : aprwrapper.cpp
> file1.cpp
> file2.cpp
> ;
>
> The bjam-generated .rsp file is like this:
>
> file1.obj
> file2.obj
> aprwrapper.obj
>
> The generated DLL gives an 'Invalid access to memory' at run-time, whereas that generated with MSVC IDE works fine. (This is because of ordering of global statics).
> If I move aprwrapper.obj to the top in the .rsp file and just run the link command, then the bjam-generated DLL is fine.

Do you give *exact* content of Jamfile and rsp? I am afraid I do not see how such reordering can happen given
the names and types of the files you have provided.

>
> My questions:
>
> 1. Is there a way to force bjam to place the obj files in a particular order or at least in the same order as given by the src file list - for the link step?

You might want to have

        <source>a.cpp&&b.cpp

in requirements for the files that need specific order.

> 2. Assuming Microsoft published how it orders the obj files in its IDE's link step, can bjam follow the same?
> This is the most preferable way so that there's no discrepancy in output between bjam and MSVC IDE.

I cannot comment without seeing the reproducer.

- 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