office-gobmx/config_host
Stephan Bergmann c91d353872 rhbz#908674: Adapt rtl::Allocator::construct to C++11
...otherwise, at least with some --with-system-boost versions and C++11
compilers, like with Fedora's boost-1.50.0-4.fc18.x86_64 and
gcc-c++-4.7.2-8.fc18.x86_64, using this to copy-construct an instance of
boost::unordered::detail::ptr_node<std::pair<rtl::OUString,Bootstrap_Impl*>> in
the call to p_bootstrap_map->insert(...) in rtl_bootstrap_args_open
(sal/rtl/source/bootstrap.cxx) would memcopy the ptr_node and fail to call
rtl_uString_acquire, leading to memory corruption later on when
rtl_uString_release is called one time too often.

It is not entirely clear to me whether this is a shortcoming of the given Boost
version, but this patch solves the problem and brings rtl::Allocator::construct
in line with the (changed) Allocator requirements of C++11 anyway.

The problem potentially lurks with every use of rtl::Allocator, but only showed
now begining with LO 4.0 where e5111574fd "Revert
'sb140: sb140: #i116981# clean up memory upon exit'" re-introduced code into
rtl_bootstrap_args_open that inserts into a boost::unordered_map that uses
rtl::Allocator.

Change-Id: I3be22f59a8eb49d31458480c27f3ce15803c7fd4
2013-02-14 15:55:09 +01:00
..
.gitignore
config_clang.h.in
config_global.h.in rhbz#908674: Adapt rtl::Allocator::construct to C++11 2013-02-14 15:55:09 +01:00
config_graphite.h.in
config_telepathy.h.in
config_vclplug.h.in
config_version.h.in
README

These are configuration files for various features as detected by configure.

Include only those files you need (in order to reduce rebuilds when a setting changes).

Settings here are only C/C++ #define directives, so they apply only to C/C++ source,
not to Makefiles.



Adding a new setting:
=====================

- do AC_DEFINE(HAVE_FOO) in configure.ac when a setting should be set
- choose the proper config_host/config_xxx.h file to use
    - if it is a global setting (such as availability of a compiler feature),
        use config_host/config_global.h
    - otherwise check if there is a matching config_host/config_hxx.h file
    - if none matches, add a new one:
        - add config_host/config_xxx.h.in here, with just #ifndef include guard
        - add AC_CONFIG_HEADERS([config_host/config_xxx.h]) next to the others
            in configure.ac
        - add config_hxx.h to config_host/.gitignore
- add #undef HAVE_FOO to the config_host/config_hxx.h , possibly with a comment
- add #include <config_xxx.h> before any #ifdef HAVE_XXX in a source file