Re: [Lcms-user] Hiding private functions in autoconf builds
An ICC-based CMM for color management
Brought to you by:
mm2
From: Martí M. <mar...@li...> - 2017-01-29 20:23:37
|
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 > Lcm...@li... > https://lists.sourceforge.net/lists/listinfo/lcms-user |