freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft-devel] [freetype-2.9.1] FT_Init_FreeType is missing with cc on S


From: suzuki toshiya
Subject: Re: [ft-devel] [freetype-2.9.1] FT_Init_FreeType is missing with cc on Solaris x64
Date: Thu, 03 May 2018 23:49:40 +0900
User-agent: Mozilla-Thunderbird 2.0.0.24 (X11/20100329)

Maybe
        __attribute__((visibility("__global"))) foo
is wrong, and
        __global foo
would be correct. also I guess
        __attribute__((visibility("default"))) foo
is acceptable for Oracle cc too.

I uploaded the revised tarball (revised patch is attached).
No need to try immediately :-)

suzuki toshiya wrote:
> Dear Kanazawa-san,
> 
> Thanks!
> 
> Kiyoshi KANAZAWA wrote:
>> Dear Suzuki san,
>>
>> Tried to build freetype-2.9.1-sunpro, but failed.
>> Log files are attached.
>>
>> I'm going to bed, now.
>> See you again, tomorrow.
>> Regards,
>>
>> --- Kiyoshi
>>
>>
>> ----- Original Message -----
>> From: suzuki toshiya <address@hidden>
>> To: Alexei Podtelezhnikov <address@hidden>; Kiyoshi KANAZAWA <address@hidden>
>> Cc: freetype-devel <address@hidden>
>> Date: 2018/5/3, Thu 23:09
>> Subject: Re: [ft-devel] [freetype-2.9.1] FT_Init_FreeType is missing with cc 
>> on Solaris x64
>>
>> 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
>>> address@hidden<mailto:address@hidden>
>>> https://lists.nongnu.org/mailman/listinfo/freetype-devel
>>>
>>
>>
> 
> 
> _______________________________________________
> Freetype-devel mailing list
> address@hidden
> 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..3a8884600 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 )  __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..28ca3a727 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 )  __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..b17d1a570 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 )  __global  x
 #elif defined( __cplusplus )
 #define FT_EXPORT( x )  extern "C"  x
 #else

reply via email to

[Prev in Thread] Current Thread [Next in Thread]