[Libreoffice] LibreOffice is free of STLport

Fridrich Strba fridrich.strba at bluewin.ch
Wed Feb 9 23:44:25 PST 2011

Hello, good people,

First of all, apologies to those that had to fix the breakages in the
build due to me being in FOSDEM and not being able to push patches as
fast as would be necessary while removing the old good friend from our
source tree.

The situation is now following:

LibreOffice does not use STLport anymore and uses the toolchain's STL
implementation. We build the stlport module for the platforms where it
was used before and we deliver it into solver and package it for the
compatibility reasons, but we don't link with it at all.

We removed and worked around any remaining stlportims from the code. The
templates from stlport's functional header that are not part of the C++
standard are to be found in o3tl/compat_functional.hxx header and are
placed in o3tl:: namespace. That header also includes o3tl::iota that is
strictly not belonging there, but we did not want to add a
compat_functional.hxx for one simple template only.

The hash_map, hash_multimap, hash_set and hash_multiset are remplaced by
boost::unordered_map, boost::unordered_multimap, boost::unordered_set
and boost::unordered_multiset. As well, the std::hash is replaced by
boost::hash. So, if your code contains any of them, please adapt it.
Note that the data_type member from the hash_* containers should be
replaced by mapped_type member from the boost types.

In case you find breakages in the hash containers, check whether the
code is not trying to delete an entry on the one-beyond-last position.
This was somehow handled graciously in stlport, but it crashes in the
boost containers. And for sure it is wrong thing to try to do.

Good people, I am almost sure I broke your exotic platforms, so I would
beg you to help me to debug them and fix them. I am available on IRC
when I am not sleeping, so just ping "Fridrich" or "TrainedMonkey".

Don't hesitate to ask questions.



More information about the LibreOffice mailing list