[Libreoffice] gbuild, visibility and map files ?

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Wed May 25 03:20:23 PDT 2011

Hi Caolán,

On Wed, 25 May 2011 09:36:55 +0100
Caolán McNamara <caolanm at redhat.com> wrote:

> IIRC with the gbuild system the simple map files to restrict exports
> were deprecated in favour of pure visibility markup. On the other
> hand, how does this mesh with the more complicated symbol versioning
> used in the ure map files, e.g. cppu/source/gcc3.map or salhelper's
> one.

Well, these files have two things:
a) long lists of mangled names
b) versioned symbols

For a) it is painful to migrate, but can be represented by source

b) is platform-specific: it only works on unix. It can also be done by
source decoration on gcc via __asm__(".symver foo"); IIRC. The only
valid usecases I came up with is:

- A C++ and unix-only extension uses the URE and links against an old
  version which implements a different version of the same symbol.
  However, I have not found that in the map files yet. I only found
  additional symbols being available for new versions. So maybe this is
  a nonissue (with C++ extension, unix-only and old being a cornercase
- A C++ and unix-only extension that wants to ensure to be compatible
  (in theory) with an old URE/OOo version, by linking explicitly
  against that version to make sure there are all symbols available in
  the old version already. In real life that requires testing with the
  complete (old) product anyway.

So is there a real usable scenario I missed? If not, IMHO we should
just drop the versioning (as we dont have one on Windows anyway) and
only provide the latest and greatest API.




More information about the LibreOffice mailing list