Re: pgsql: aix: No need to use mkldexport when we want to export all symbol - Mailing list pgsql-committers

From Andres Freund
Subject Re: pgsql: aix: No need to use mkldexport when we want to export all symbol
Date
Msg-id 20220913075117.mjbhhs7jwmj7vbp5@awork3.anarazel.de
Whole thread Raw
In response to Re: pgsql: aix: No need to use mkldexport when we want to export all symbol  (Andres Freund <andres@anarazel.de>)
List pgsql-committers
On 2022-09-13 00:15:55 -0700, Andres Freund wrote:
> On 2022-09-12 23:39:04 -0700, Noah Misch wrote:
> > On Mon, Sep 12, 2022 at 11:11:23PM -0700, Andres Freund wrote:
> > > > > > -qvisibility option specifies visibility attributes for entities. Entity
> > > > > >  visibility attributes describe whether and how entities defined in one
> > > > > >  module can be referenced or used in other modules. Visibility attributes
> > > > > >  affect entities with external linkage only, and cannot increase the
> > > > > >  visibility of other entities.
> > > > >
> > > > >
> > > > > Since xlc 13.1 supports all still supported AIX versions I'm inclined to think
> > > > > we should increase our requirement to 13.1 rather than revert back to the
> > > > > higher complexity way of building modules.
> > > >
> > > > Perhaps.  That would demolish two buildfarm members.
> > >
> > > Or you could update them to a slightly newer xlc? IIRC the machine has 13.x
> > > available?
> >
> > I don't see 13.x, but I might not know where to look.
> 
> Looks like it's not available on gcc111, just on gcc119, there it's at
> /opt/IBM/xlc/13.1.3/bin/xlc
> 
> 
> > > > What does PostgreSQL lose if you revert fe6a64a?
> > >
> > > A somewhat readable Makefile.shlib. The prior state is complicated, specific
> > > to AIX. I've several times spent quite a bit of time understanding it - not
> > > helped by the complete lack of comments. It's not frequent enough to stay in
> > > my brain unfortunately, so I'll have to relearn it again next time. And we'll
> > > need to continue supporting Makefile.shlib for quite a while, so ...
> >
> > I'm voting for a revert, then.  Code beautification is nice when it just
> > works, but desupporting this compiler to land this particular code
> > beautification makes the net value go negative for me.  I can understand your
> > feeling differently based on your recent experiences.
> 
> IMO this more than just a beautification - the difference is functional in
> nature. I'd agree if it just were a reformating or such, but this isn't that.
> 
> I just tested, and with the mlkdexport.sh approach we end up with all symbols
> exported (-fvisibility=hidden) in extension .so's - AIX will be the only
> platform unable to restrict symbol exports. That's bound to lead to problems
> we'll only have on AIX.
> 
> The more special-case-y some platform is, the higher the cost of supporting it
> is. I'm somewhat ok with supporting niche stuff, but then the people desiring
> that support also need to do the work of making that bearable for everyone
> else.

Worth noting that xlc 12.1 appears to be EOL:

https://www.ibm.com/support/pages/unsupported-c-and-c-compilers-and-debuggers-links-latest-updates

"This page contains links to the final updates (Fix Packs, PTFs, etc) for the
non-supported IBM C and C++ compiler and debugger products. This document is
provided "AS IS" since those compilers are no longer supported.
...
XL C for AIX Fix Pack 23 (May 2021 PTF) for 12.1".

The successor, 13.1.0 is from 06 June 2014, which in turn has been superceeded
by 16.1 (16.1.0 14 December 2018) and 17.1 (17.1.0 17 September 2021).

Greetings,

Andres Freund



pgsql-committers by date:

Previous
From: Andres Freund
Date:
Subject: Re: pgsql: aix: No need to use mkldexport when we want to export all symbol
Next
From: John Naylor
Date:
Subject: pgsql: Treat Unicode codepoints of category "Format" as non-spacing