mirror of
https://github.com/postgres/postgres.git
synced 2026-04-15 22:10:45 -04:00
The concerns that led us to remove AIX support in commit0b16bb877have now been alleviated: 1. IBM has stepped forward to provide support, including buildfarm animal(s). 2. AIX 7.2 and later seem to be fine with large pg_attribute_aligned requirements. Since 7.1 is now EOL anyway, we can just cease to support it. 3. Tossing xlc support overboard seems okay as well. It's a bit sad to drop one of the few remaining non-gcc-alike compilers, but working around xlc's bugs and idiosyncrasies doesn't seem justified by the theoretical portability benefits. 4. Likewise, we can stop supporting 32-bit AIX builds. This is not so much about whether we could build such executables as that they're too much of a pain to manage in the field, due to limited address space available for dynamic library loading. 5. We hit on a way to manage catalog column alignment that doesn't require continuing developer effort (see commitecae09725). Hence, this commit reverts0b16bb877and some follow-on commits such ase6bb491bf, except for not putting back XLC support nor the changes related to catalog column alignment. Some other notable changes from the way things were in v16: Prefer unnamed POSIX semaphores on AIX, rather than the default choice of SysV semaphores. Include /opt/freeware/lib in -Wl,-blibpath, even when it is not mentioned anywhere in LDFLAGS. Remove platform-specific adjustment of MEMSET_LOOP_LIMIT; maybe that's still the right thing, but it really ought to be re-tested. Silence compiler warnings related to getpeereid(), wcstombs_l(), and PAM conversation procs. Accept "libpythonXXX.a" as an okay name for the Python shared library (but only on AIX!). Author: Aditya Kamath <Aditya.Kamath1@ibm.com> Author: Srirama Kucherlapati <sriram.rk@in.ibm.com> Co-authored-by: Peter Eisentraut <peter@eisentraut.org> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/CY5PR11MB63928CC05906F27FB10D74D0FD322@CY5PR11MB6392.namprd11.prod.outlook.com
91 lines
1.6 KiB
Perl
91 lines
1.6 KiB
Perl
|
|
# Copyright (c) 2024-2026, PostgreSQL Global Development Group
|
|
|
|
use strict;
|
|
use warnings FATAL => 'all';
|
|
use Getopt::Long;
|
|
|
|
my $format;
|
|
my $libname;
|
|
my $input;
|
|
my $output;
|
|
|
|
GetOptions(
|
|
'format:s' => \$format,
|
|
'libname:s' => \$libname,
|
|
'input:s' => \$input,
|
|
'output:s' => \$output) or die "wrong arguments";
|
|
|
|
if (not( $format eq 'aix'
|
|
or $format eq 'darwin'
|
|
or $format eq 'gnu'
|
|
or $format eq 'win'))
|
|
{
|
|
die "$0: $format is not yet handled (only aix, darwin, gnu, win are)\n";
|
|
}
|
|
|
|
open(my $input_handle, '<', $input)
|
|
or die "$0: could not open input file '$input': $!\n";
|
|
|
|
open(my $output_handle, '>', $output)
|
|
or die "$0: could not open output file '$output': $!\n";
|
|
|
|
|
|
if ($format eq 'aix')
|
|
{
|
|
print $output_handle "#!\n";
|
|
}
|
|
elsif ($format eq 'gnu')
|
|
{
|
|
print $output_handle "{
|
|
global:
|
|
";
|
|
}
|
|
elsif ($format eq 'win')
|
|
{
|
|
# XXX: Looks like specifying LIBRARY $libname is optional, which makes it
|
|
# easier to build a generic command for generating export files...
|
|
if ($libname)
|
|
{
|
|
print $output_handle "LIBRARY $libname\n";
|
|
}
|
|
print $output_handle "EXPORTS\n";
|
|
}
|
|
|
|
while (<$input_handle>)
|
|
{
|
|
if (/^#/)
|
|
{
|
|
# don't do anything with a comment
|
|
}
|
|
elsif (/^(\S+)\s+(\S+)/)
|
|
{
|
|
if ($format eq 'aix')
|
|
{
|
|
print $output_handle "$1\n";
|
|
}
|
|
elsif ($format eq 'darwin')
|
|
{
|
|
print $output_handle "_$1\n";
|
|
}
|
|
elsif ($format eq 'gnu')
|
|
{
|
|
print $output_handle " $1;\n";
|
|
}
|
|
elsif ($format eq 'win')
|
|
{
|
|
print $output_handle "$1 @ $2\n";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
die "$0: unexpected line $_\n";
|
|
}
|
|
}
|
|
|
|
if ($format eq 'gnu')
|
|
{
|
|
print $output_handle " local: *;
|
|
};
|
|
";
|
|
}
|