From: bill_kempf (williamkempf_at_[hidden])
Date: 2002-03-04 07:31:02
--- In jamboost_at_y..., Rene Rivera <grafik666_at_r...> wrote:
> On 2002-03-01 at 05:48 PM, williamkempf_at_h... (bill_kempf) wrote:
> >I've e-mailed Rene about my concerns here before, but I've finally
> >gotten around to proving the problem is real and thought it better
> >post it to the list this time.
> >The issue is that the staging concept, with the ability to rename
> >files, simply doesn't work for DLLs on the Win32 platform. When
> >import libraries are used (and this is the only DLL usage that
> >Boost.Threads can support since actual dynamic linking would
> >in premature cleanup of thread local data) the import library does
> >the dynamic loading of the DLL based on the name of the DLL at
> >compile time. When you rename the DLL this means that the import
> >library no longer can load the appropriate DLL.
> >Rene suggested using a utility such as IMPLIB to recreate the
> >library when staging. This might work, but I'm not sure if it's
> >right solution. I don't know if IMPLIB will work with all C++
> >generated by other compilers, nor do I know about the universal
> >presence of this, or a similar utility, for the various compilers.
> >I'd suggest instead allowing <tag>s to be used in the build
> >to modify the output name at compile/link time. This may be a
> >complicated solution to implement in the Jam rules, but it seems
> >be the more "proper" solution.
> I agree with Bill on this, even though I know IMPLIB will work,
it's not the
> nicest solution. I don't think the changes to get the tags
> elsewhere are much, just very tricky. I've factored out the rename
> was in the "stage" rule to help if we do this.
I've been thinking about this, and there's another need for renaming
libraries in Jam based on tags... linking with already built
libraries. It's quite common for debug libraries to end with "d" on
the Win32 platform, for example, and if an executable needs to link
against such a "third party" library it seems problematic with Jam
today (unless there's a trick I've missed).
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