Hello Thomas,

A macro takes care of this, CMSAPI.

For gcc you may want to change lcms2.h line 239 to this:

#define CMSAPI   __attribute__((visibility("protected")))

Windows uses some similar:

define CMSAPI    __declspec(dllexport)

The standard distribution does not include that because it is supposed to be C99 portable, though it seems almost everyone is using either VS or gcc and compatibles like Intel's icc. I was evaluating the possibility of including this in a conditional define, but it has implications. For example in the the testbed, as you have already discovered. So for now is not in the to do list.

The testsuite is a special program, not a "real" .so client. Its purpose is to validate the platform, it can be checked with the static library only, for example.

Regards

Marti



On 29/01/2017 16:06, Thomas Weber wrote:
Hi,

I am trying to change the autoconf build system such that
functions/symbols from lcms2_internal.h are no longer exported in the
shared library, similar to the Windows build. This has progressed fine
so far, but the testsuite uses several of these functions (see attached
diff). If they are no longer publicly available in the shared library,
testbed/testcms cannot be built.

How is the Windows build working around this?

Thanks
        Thomas


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to