Dear Alexei, Kanazawa-san, Here is the patch trying to use visibility options on SunPro. Also patched tarball is uploaded at:
http://gyvern.ipc.hiroshima-u.ac.jp/~mpsuzuki/freetype-2.9.1-sunpro.tar.gz This is completely untested on SunPro, there might be silly mistakes, but I hope anybody can try. Regards, mpsuzuki suzuki toshiya wrote: > Alexei Podtelezhnikov wrote: >>> Thus, attribute visibility is only enabled for GCC >= 4. >>> >>> Comparing with configure.raw, I guess you assumed that >>> -fvisibility is GCC-specific feature? >> Solaris compiler would natively need -xldscope=hidden and __global >> attribute, according to >> http://www.oracle.com/technetwork/server-storage/solaris/symbol-scope-140496.html > > The values of attribute-visibility would be compatible with > GNU style, according to > https://docs.oracle.com/cd/E19205-01/821-2496/bjabi/index.html > please find 2.9. > >> -fvisibility is GNU so Solaris had better define __GNUC__. Oh well. > > According to configure.log.xz by Kanazawa-san, Oracle cc > (pretends to as if it) supports -fvisibility. > Anyway, I have no objection to write Sun style explicitly. > > Regards, > mpsuzuki > > > _______________________________________________ > Freetype-devel mailing list > Freetype-devel@nongnu.org > https://lists.nongnu.org/mailman/listinfo/freetype-devel >
diff --git a/builds/unix/configure.raw b/builds/unix/configure.raw index baab79dc5..8eded34b4 100644 --- a/builds/unix/configure.raw +++ b/builds/unix/configure.raw @@ -311,6 +311,14 @@ AC_SUBST([XX_ANSIFLAGS]) # It is recommended that shared libraries hide symbols except those with # explicit __attribute__((visibility("default"))). # +AC_MSG_CHECKING([for -xldscope=hidden compiler flag]) +orig_CFLAGS="${CFLAGS}" +CFLAGS="${CFLAGS} -xldscope=hidden" +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], + AC_MSG_RESULT(yes), + CFLAGS="${orig_CFLAGS}" + AC_MSG_RESULT(no)) + AC_MSG_CHECKING([for -fvisibility=hidden compiler flag]) orig_CFLAGS="${CFLAGS}" CFLAGS="${CFLAGS} -fvisibility=hidden" diff --git a/builds/unix/ftconfig.in b/builds/unix/ftconfig.in index b9c21da2c..282898d8a 100644 --- a/builds/unix/ftconfig.in +++ b/builds/unix/ftconfig.in @@ -493,6 +493,8 @@ FT_BEGIN_HEADER #define FT_EXPORT( x ) __declspec( dllexport ) x #elif defined( __GNUC__ ) && __GNUC__ >= 4 #define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x +#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x500 +#define FT_EXPORT( x ) __attribute__(( visibility( "__global" ) )) x #elif defined( __cplusplus ) #define FT_EXPORT( x ) extern "C" x #else diff --git a/builds/vms/ftconfig.h b/builds/vms/ftconfig.h index 021e2c651..2a2fe71a1 100644 --- a/builds/vms/ftconfig.h +++ b/builds/vms/ftconfig.h @@ -445,6 +445,8 @@ FT_BEGIN_HEADER #define FT_EXPORT( x ) __declspec( dllexport ) x #elif defined( __GNUC__ ) && __GNUC__ >= 4 #define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x +#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x500 +#define FT_EXPORT( x ) __attribute__(( visibility( "__global" ) )) x #elif defined( __cplusplus ) #define FT_EXPORT( x ) extern "C" x #else diff --git a/include/freetype/config/ftconfig.h b/include/freetype/config/ftconfig.h index eedebf408..a3905073c 100644 --- a/include/freetype/config/ftconfig.h +++ b/include/freetype/config/ftconfig.h @@ -461,6 +461,8 @@ FT_BEGIN_HEADER #define FT_EXPORT( x ) __declspec( dllexport ) x #elif defined( __GNUC__ ) && __GNUC__ >= 4 #define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x +#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x500 +#define FT_EXPORT( x ) __attribute__(( visibility( "__global" ) )) x #elif defined( __cplusplus ) #define FT_EXPORT( x ) extern "C" x #else
_______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/freetype-devel