Boost logo

Boost Interest :

From: Beman Dawes (bdawes_at_[hidden])
Date: 2008-06-27 12:05:17


On Fri, Jun 27, 2008 at 10:41 AM, troy d. straszheim <troy_at_[hidden]>
wrote:

> Beman Dawes wrote:
>
>>
>> Doug, you need to explain this to us Windows developers who don't have a
>> clue as to how to manage multiple build variants of libraries without name
>> mangling.
>>
>>
> I don't think it is absolutely necessary to do so. Again, CMake can
> mangle, or not.
>
> FWIW, I'm working on a commercial project now where developers are unhappy
>> with Boost because we don't include 32-bit/64-bit builds in the name
>> mangling.
>>
>> These same folks decide not to use name mangling in their own libraries,
>> and as a result are running into constant hassles.
>>
>> Note that this isn't an issue of different compilers, but rather debug |
>> release, and 32-bit | 64-bit builds with the same compiler.
>>
>
> Here's more evidence that any mangling should be off by default but
> configurable. The current mangling scheme isn't detailed enough for some
> (and I can think of a number of unixy situations where having release/debug
> 32/64 in the name might make sense.... but not all), too detailed for
> others, and inflicts a
> lot of unnecessary complexity on basically everybody else. Apparently no
> one scheme will do.

Makes sense.

>
>
> Also note that these guys aren't in the 'getting started' phase, they know
> how they like their mangling. It isn't asking much of them to go to the
> 'mangling' section of the docs and configure it as they want it.

Actually, they have no idea what mangling is. They say they don't want it
when I suggest it. They don't understand that the "It just works" approach
they like relies on name mangling. They just want to download a Windows VC++
installer, click on check boxes with choices they understand, and click the
"Install" button. If you asked them if the VC++ libraries should use mangled
names, at least some of them would say "no"!

The choices they understand would include "static linking", "dynamic (DLL)
linking", "release", "debug", "32-bit", "64-bit", "single-threaded",
"multi-threaded".

When they want to use a library, they expect to give their IDE's Property
Manager a single "Additional Libraries Directories" path, and then linking
to the correct variant "just works". The idea of having to specify a
different path for each build variant wouldn't fly.

--Beman



Boost-cmake 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