On Fri, Apr 27, 2018 at 9:27 AM, Langer, Christoph
<christoph.lan...@sap.com> wrote:
> Hi Thomas,
>
> let me cite one section from the article:
>
> ----------------------------------------------
>
> Visibility attribute and backward compatibility on AIX
>
> As we know from the previous article, on AIX, symbols are not visible by 
> default unless we export them at the linking stage, either manually or with 
> the help of CreateExportList. However, on Linux, symbols are, by default, 
> with export (namely default) visibility. This brings a gap between the AIX 
> visibility attribute and the GNU visibility attribute. To be backward 
> compatible, on AIX, XL C/C++ would not set all the symbols to be exported 
> like Linux. It might consider symbol without any visibility setting to be an 
> unspecific visibility, which aligns with an old AIX implementation. For such 
> symbols, AIX compiler, linker, and related tools would handle it as before. 
> However, unspecific visibility does not mean that the symbol is internal or 
> invisible at all. It is just a visibility that is specially designed to keep 
> the compatibility.
>
> ...
>
> ----------------------------------------------
>
> It says in the first sentence: " As we know from the previous article, on 
> AIX, symbols are not visible by default unless we export them at the linking 
> stage, either manually or with the help of CreateExportList". I guess that is 
> why I was under the impression that with xlc12 symbols would not be visible...
>

:) Thanks for that pointer.

I did read:

"Consequently, as we have mentioned at the beginning of this article,
if the programmer does not explicitly specify the visibility attribute
for a symbol, on Linux, the visibility of the symbol could be
thedefault. But on AIX, the visibility would be unspecified."

So I thought, default is "unspecified", which is not hidden.

I just had a look at the libjvm.so from our nightly fastdebug build,
using "nm -g".

I see tons of exports listed, most of which do not have the static
keyword. So, I would expect them to be exported from their compilation
unit, but not from the linked shared library? Am I making a thinking
error here?

Anyway. I do not want to hold up this patch if you guys think it is
okay to ignore the compiler warning, so it is okay by me.

Best Regards, Thomas


> Best regards
> Christoph
>
>> -----Original Message-----
>> From: Thomas Stüfe [mailto:thomas.stu...@gmail.com]
>> Sent: Freitag, 27. April 2018 09:21
>> To: Langer, Christoph <christoph.lan...@sap.com>
>> Cc: Volker Simonis <volker.simo...@gmail.com>; Baesken, Matthias
>> <matthias.baes...@sap.com>; Simonis, Volker <volker.simo...@sap.com>;
>> ppc-aix-port-...@openjdk.java.net; core-libs-...@openjdk.java.net; build-
>> d...@openjdk.java.net
>> Subject: Re: RFR : 8202322: AIX: symbol visibility flags not support on xlc 
>> 12.1
>>
>> Hi Christoph
>>
>> On Fri, Apr 27, 2018 at 8:07 AM, Langer, Christoph
>> <christoph.lan...@sap.com> wrote:
>> > Hi Thomas,
>> >
>> > Look at this blog: https://www.ibm.com/developerworks/aix/library/au-
>> aix-symbol-visibility-part2/index.html
>> >
>> > if I understand it correctly, the xlc 12 default behavior should be like 
>> > what
>> we'd expect from -qvisibility=hidden.
>> >
>>
>> Where in this article do you read this?
>>
>> ..Thomas
>>
>> > Best regards
>> > Christoph
>> >
>> >> -----Original Message-----
>> >> From: build-dev [mailto:build-dev-boun...@openjdk.java.net] On Behalf
>> Of
>> >> Thomas Stüfe
>> >> Sent: Freitag, 27. April 2018 06:55
>> >> To: Volker Simonis <volker.simo...@gmail.com>; Baesken, Matthias
>> >> <matthias.baes...@sap.com>
>> >> Cc: Simonis, Volker <volker.simo...@sap.com>; ppc-aix-port-
>> >> d...@openjdk.java.net; core-libs-...@openjdk.java.net; build-
>> >> d...@openjdk.java.net
>> >> Subject: Re: RFR : 8202322: AIX: symbol visibility flags not support on 
>> >> xlc
>> 12.1
>> >>
>> >> Hi,
>> >>
>> >> This was added by "8200178: Remove mapfiles for JDK native libraries".
>> >> But if the flag is not accepted, what is the default behavior? Do we
>> >> now export everything?
>> >>
>> >> I'd like to understand this first before removing the flag to get rid
>> >> of the warnings.
>> >>
>> >> Best Regards, Thomas
>> >>
>> >> On Thu, Apr 26, 2018 at 5:16 PM, Volker Simonis
>> >> <volker.simo...@gmail.com> wrote:
>> >> > Hi Matthias,
>> >> >
>> >> > after Bhaktavatsal Reddy's report about the problems with
>> >> > "-qvisibility" with xlC 13 and taking into account that we can't test
>> >> > this anyway because we don't currently have xlC 13
>> >> >  on our machines I think it would be best to completely remove this
>> >> > option for now on AIX. Once we get xlC 13 we can revisit the issue.
>> >> >
>> >> > Thanks,
>> >> > Volker
>> >> >
>> >> >
>> >> > On Thu, Apr 26, 2018 at 4:59 PM, Bhaktavatsal R Maram
>> >> > <bhama...@in.ibm.com> wrote:
>> >> >> Hi Matthias,
>> >> >>
>> >> >> At this point, I think we can remove the flag as you found that it is 
>> >> >> not
>> >> supported in XLC < 13. And with XLC 13, it require more work to use this
>> flag.
>> >> >>
>> >> >> Thanks,
>> >> >> Bhaktavatsal Reddy
>> >> >>
>> >> >>
>> >> >>
>> >> >> -----"Baesken, Matthias" <matthias.baes...@sap.com> wrote: -----
>> >> >> To: "Langer, Christoph" <christoph.lan...@sap.com>, "'build-
>> >> d...@openjdk.java.net'" <build-dev@openjdk.java.net>, "ppc-aix-port-
>> >> d...@openjdk.java.net" <ppc-aix-port-...@openjdk.java.net>, "core-
>> libs-
>> >> d...@openjdk.java.net" <core-libs-...@openjdk.java.net>
>> >> >> From: "Baesken, Matthias" <matthias.baes...@sap.com>
>> >> >> Date: 04/26/2018 08:23PM
>> >> >> Cc: "Simonis, Volker" <volker.simo...@sap.com>, Bhaktavatsal R
>> Maram
>> >> <bhama...@in.ibm.com>
>> >> >> Subject: RE: RFR : 8202322: AIX: symbol visibility flags not support 
>> >> >> on xlc
>> >> 12.1
>> >> >>
>> >> >>
>> >> >>  Hello Christoph,   I think  all XLC versions  < 12.1   are unsupported
>> (and
>> >> probably not working anyway)  for the OpenJDK  build .
>> >> >>  I am only aware   of  XLC  versions  12.1  and 13.1    which  work / 
>> >> >> in case
>> of
>> >> 13.1  “might” work   for OpenJDK compilation .
>> >> >>  And for 12.1  I want to remove the flags  .
>> >> >>
>> >> >>  ( waiting for the feedback  of   Bhaktavatsal Reddy ,  in case he  
>> >> >> prefers
>> it
>> >> I remove them for all xlC versions including 13.1 )
>> >> >>
>> >> >>  Best regards, Matthias
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>  From: Langer, Christoph
>> >> >>  Sent: Donnerstag, 26. April 2018 16:38
>> >> >>  To: Baesken, Matthias <matthias.baes...@sap.com>; 'build-
>> >> d...@openjdk.java.net' <build-dev@openjdk.java.net>; ppc-aix-port-
>> >> d...@openjdk.java.net; core-libs-...@openjdk.java.net
>> >> >>  Cc: Simonis, Volker <volker.simo...@sap.com>
>> >> >>  Subject: RE: RFR : 8202322: AIX: symbol visibility flags not support 
>> >> >> on
>> xlc
>> >> 12.1
>> >> >>
>> >> >>  Hi Matthias,
>> >> >>
>> >> >>  to me the change in principal looks good.
>> >> >>
>> >> >>  I’m wondering if it is possible to do a comparison like xlc < 13 (e.g.
>> extract
>> >> major number before the first dot, then compare numerically) – but
>> maybe it
>> >> is too complicated and the current single version compare suits  our needs
>> ?
>> >> >>
>> >> >>  Best regards
>> >> >>  Christoph
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>  From: Baesken, Matthias
>> >> >>  Sent: Donnerstag, 26. April 2018 16:14
>> >> >>  To: 'build-dev@openjdk.java.net' <build-dev@openjdk.java.net>;
>> ppc-
>> >> aix-port-...@openjdk.java.net; core-libs-...@openjdk.java.net
>> >> >>  Cc: Langer, Christoph <christoph.lan...@sap.com>; Simonis, Volker
>> >> <volker.simo...@sap.com>
>> >> >>  Subject: RFR : 8202322: AIX: symbol visibility flags not support on 
>> >> >> xlc
>> 12.1
>> >> >>
>> >> >>  Hello  ,  could you please review this small adjustment to  the symbol
>> >> visibility compilation settings on AIX ?
>> >> >>  Currently  we use  XLC 12.1  to compile  JDK on AIX .
>> >> >>
>> >> >>  However XLC 12.1   does not support  the “-qvisibility=hidden”  
>> >> >> setting
>> >> currently set on AIX.
>> >> >>  It was introduced with  XLC 13.1 . Christoph found some info about it
>> here
>> >> :
>> >> >>
>> >> >>  https://www.ibm.com/developerworks/aix/library/au-aix-symbol-
>> >> visibility-part2/index.html
>> >> >>
>> >> >>  Setting it  only generates  hundreds  of warnings  in the build log ,
>> >> warnings look like this :
>> >> >>  XlC12.1
>> >> >>
>> >> >>  bash-4.4$ xlC -qversion
>> >> >>  IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72)
>> >> >>  Version: 12.01.0000.0019
>> >> >>
>> >> >>  bash-4.4$ xlC -qvisibility=hidden sizeof.c -o sizeof_aixxlc
>> >> >>  1506-173 (W) Option visibility=hidden is not valid. Enter xlC for 
>> >> >> list of
>> valid
>> >> options.
>> >> >>
>> >> >>  Compare to XLC13.1
>> >> >>
>> >> >>  bash-3.00$ xlC -qversion
>> >> >>  IBM XL C/C++ for AIX, V13.1 (5725-C72, 5765-J07)
>> >> >>  Version: 13.01.0000.0008
>> >> >>  bash-3.00$ xlC -qvisibility=default sizeof.c -o sizeof_aixxlc
>> >> >>  bash-3.00$ xlC -qvisibility=hidden sizeof.c -o sizeof_aixxlc
>> >> >>
>> >> >>
>> >> >>  So it is better to avoid  setting these flags when using xlc12.1   .
>> >> >>  Please review :
>> >> >>
>> >> >>  Bug :
>> >> >>
>> >> >>  https://bugs.openjdk.java.net/browse/JDK-8202322
>> >> >>
>> >> >>  Change :
>> >> >>
>> >> >>  http://cr.openjdk.java.net/~mbaesken/webrevs/8202322/
>> >> >>
>> >> >>
>> >> >>  Best regards, Matthias
>> >> >>
>> >> >>
>> >> >>
>> >> >>

Reply via email to