...replacing hard-coded GCC version checks. Those checks that guard
#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
appear relevant only for GCC itself, not Clang (which used to fail the old
guards because it typically announces itself with a rather low
__GNUC__/__GNUC_MINOR__ version), see 6e67c03dc0225fc66343546b14e902b9d238b1a3
"Enable -Wnon-virtual-dtor for GCC 4.6"
Change-Id: I6bfa4d5caa6192e7a203ce829682bf6bb8d61a1b
The necessary build stuff was apparently silently dropped during gbuild
conversion and never noticed.
Change-Id: Ib1f530b92618a9d4f11c54818e984f737abaa283
...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 e5111574fd904b38a3980ca4ea3d21cfcb22dea6 "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
We have only been lucky so far that there hasn't been any compilation errors
caused by using the HOST platform config_*.h files also for the BUILD
platform. But as more and more information found out during configury is
stored in config_*.h files, sooner or later it will be a problem.
Move config/* to config_host/*. When not cross-compiling, the config_*.h files
in config_host expanded from config_*.h.in are all there is. When
cross-compiling, the generated config_*.h files for the BUILD platform are
put into a config_build folder.
Then use config_build when building the cross_toolset and config_host
otherwise.
Change-Id: I3c28cc83866bffd696b45d00dfb68e00bc2ae538