mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-03-17 09:36:58 +08:00
The concerns that led us to remove AIX support in commit 0b16bb877 have 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 commit ecae09725). Hence, this commit reverts 0b16bb877 and some follow-on commits such as e6bb491bf, 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
42 lines
1.6 KiB
Makefile
42 lines
1.6 KiB
Makefile
# The PostgreSQL make files exploit features of GNU make that other
|
|
# makes do not have. Because it is a common mistake for users to try
|
|
# to build Postgres with a different make, we have this make file
|
|
# that, as a service, will look for a GNU make and invoke it, or show
|
|
# an error message if none could be found.
|
|
|
|
# If the user were using GNU make now, this file would not get used
|
|
# because GNU make uses a make file named "GNUmakefile" in preference
|
|
# to "Makefile" if it exists. PostgreSQL is shipped with a
|
|
# "GNUmakefile". If the user hasn't run the configure script yet, the
|
|
# GNUmakefile won't exist yet, so we catch that case as well.
|
|
|
|
|
|
# AIX make defaults to building *every* target of the first rule. Start with
|
|
# a single-target, empty rule to make the other targets non-default.
|
|
all:
|
|
|
|
all check install installdirs installcheck installcheck-parallel uninstall clean distclean maintainer-clean dist distcheck world check-world install-world installcheck-world:
|
|
@if [ ! -f GNUmakefile ] ; then \
|
|
echo "You need to run the 'configure' program first. Please see"; \
|
|
echo "<https://www.postgresql.org/docs/devel/installation.html>" ; \
|
|
false ; \
|
|
fi
|
|
@IFS=':' ; \
|
|
for dir in $$PATH; do \
|
|
for prog in gmake gnumake make; do \
|
|
if [ -f $$dir/$$prog ] && ( $$dir/$$prog -f /dev/null --version 2>/dev/null | grep GNU >/dev/null 2>&1 ) ; then \
|
|
GMAKE=$$dir/$$prog; \
|
|
break 2; \
|
|
fi; \
|
|
done; \
|
|
done; \
|
|
\
|
|
if [ x"$${GMAKE+set}" = xset ]; then \
|
|
echo "Using GNU make found at $${GMAKE}"; \
|
|
unset MAKELEVEL; \
|
|
$${GMAKE} $@ ; \
|
|
else \
|
|
echo "You must use GNU make to build PostgreSQL." ; \
|
|
false; \
|
|
fi
|