On 11/17/09 19:06, Mathias Bauer wrote:
Frank Schoenheit, Sun Microsystems Germany wrote:

Hi Bjoern

- map files
- explicitly setting a compiler flag in the make file
- XX_DLL_EXPORT/XX_DLL_IMPORT/XX_DLL_PRIVATE and friends

However, using the XX_DLL_PRIVATE and friends should be "enough for
everyone", right?
At least we'd need a makefile-clause for setting a default, /me thinks.

For instance, for libs exporting the usual three UNO entry points
component_*, I would like to have a "make everything private" directive,
plus a PUBLIC statement for the three functions.

That's possible with declaring the three fucntions XX_DLL_PUBIC and - as
Björn suggested - defaulting everything else to private.

Note that for a UNO component library that only exports the three component_* functions, you do not need the OOO_DLLPUBLIC_* overhead (what legacy code calls *_DLLPUBLIC, carelessly polluting the macro namespace), but just SAL_DLLPUBLIC_EXPORT (see <http://wiki.services.openoffice.org/wiki/Symbol_Visibility>).

So far I haven't seen any case where the XX_DLL_ stuff wouldn't work. So
we are still waiting for such an example.

One (hopefully minor) point that comes to mind is that SAL_DLLPRVIATE is a nop on Windows, so there libraries potentially export more than necessary (and more than if they used carefully crafted map files).

-Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to