Die GNU autotools
Shachar Shemesh
shachar at shemesh.biz
Wed Jan 12 16:52:15 IST 2011
On 12/01/11 16:32, Oleg Goldshmidt wrote:
> And today I have an #ifdef in some code I wrote a few weeks ago
> because STL's compose1 and compose2 are officially parts of STL but
> not (yet) of the C++ standard, and some interesting platforms have
> them and some don't, and it may depend on the version of g++, caeteris
> paribus.
>
fakeroot-ng prefers to use std::unordered_map, if it's available. If
not, __fnu_cxx::hash_map would do. If even that's not available, it
would grudgingly use std::map, even though that one has worse
performance characteristics.
The test in its configure.ac is rather largish (not huge, mind you - 50
lines including the test for what flags are required to actually make
gcc support C++0x), config.h has the following lines (or similar):
> /* The type for the map class */
> #define MAP_CLASS std::unordered_map
>
> /* The file to include in order to get the map class */
> #define MAP_INCLUDE <unordered_map>
The source file contains no #ifdefs at all. See
http://fakerootng.svn.sourceforge.net/viewvc/fakerootng/trunk/parent.cpp?revision=313&view=markup#l32
and
http://fakerootng.svn.sourceforge.net/viewvc/fakerootng/trunk/parent.cpp?revision=313&view=markup#l54
Still, someone needs to figure out which is the version to use and put
it in the right place, and it's not going to be the end user.
>
> I remember guessing that it was probably not considered a big problem
> on Windows because Windows didn't have shared libraries, so memory
> would be wasted in any case.
I'm not sure where you got that one. Even assuming you meant "share
runtime memory", and not "shared code", Windows does have shared
libraries. It is true that you are discouraged from using non-system
DLLs from a shared location, unless you jump through the horrible hoops
called "manifests", but still, a single application install would be
expected to use only one version of a DLL, and its text and read only
segments would, generally, be shared between all executables using it.
Shachar
--
Shachar Shemesh
Lingnu Open Source Consulting Ltd.
http://www.lingnu.com
More information about the Linux-il
mailing list