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