Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-42087: Remove support for AIX 5 and below #22830

Merged
merged 1 commit into from
Nov 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -1635,7 +1635,7 @@ libainstall: @DEF_MAKE_RULE@ python-config
$(INSTALL_SCRIPT) Modules/ld_so_aix \
$(DESTDIR)$(LIBPL)/ld_so_aix; \
echo "$(LIBPL)/ld_so_aix"; \
echo; echo "See Misc/AIX-NOTES for details."; \
echo; echo "See Misc/README.AIX for details."; \
else true; \
fi

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Support was removed for AIX 5.3 and below. See :issue:`40680`.
5 changes: 0 additions & 5 deletions Misc/README.AIX
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,6 @@ cd Python-3.2
CC=xlc_r OPT="-O2 -qmaxmem=70000" ./configure --without-computed-gotos --enable-shared
make

Note:
On AIX 5.3 and earlier, you will also need to specify the
"--disable-ipv6" flag to configure. This has been corrected in AIX
6.1.


======================================================================
Memory Limitations
Expand Down
1 change: 0 additions & 1 deletion Modules/_localemodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,6 @@ static struct langinfo_constant{
LANGINFO(PM_STR),

/* The following constants are available only with XPG4, but...
AIX 3.2. only has CODESET.
OpenBSD doesn't have CODESET but has T_FMT_AMPM, and doesn't have
a few of the others.
Solution: ifdef-test them all. */
Expand Down
44 changes: 17 additions & 27 deletions Modules/makexp_aix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# ===========================================================================
# FILE: makexp_aix
# TYPE: standalone executable
# SYSTEM: AIX 3.2.5 and AIX 4
# SYSTEM: AIX
#
# DESCRIPTION: This script creates an export list of ALL global symbols
# from a list of object or archive files.
Expand Down Expand Up @@ -48,34 +48,24 @@ echo "*" >> $expFileName
echo "* $notemsg" >> $expFileName
echo "*" >> $expFileName

# Extract the symbol list using 'nm' which produces quite
# different output under AIX 4 than under AIX 3.2.5.
# The following handles both versions by using a common flagset.
# Extract the symbol list using 'nm'
# Here are some hidden tricks:
# 1. Use /usr/ccs/bin/nm. Relevant to AIX 3.2.5 which has
# another version under /usr/ucb/bin/nm.
# 2. Use the -B flag to have a standard BSD representation
# of the symbol list on both AIX 3.2.5 and AIX 4. The "-B"
# flag is missing in the AIX 3.2.5 online usage help of 'nm'.
# 3. Use the -x flag to have a hex representation of the symbol
# values. This fills the leading whitespaces on AIX 4,
# thus simplifying the sed statement.
# 4. Eliminate all entries except those with either "B", "D"
# or "T" key letters. We are interested only in the global
# (extern) BSS, DATA and TEXT symbols. With the same statement
# we eliminate object member lines relevant to AIX 4.
# 5. Eliminate entries containing a dot. We can have a dot only
# as a symbol prefix, but such symbols are undefined externs.
# 6. Eliminate everything including the key letter, so that we're
# left with just the symbol name.
# 7. Eliminate all entries containing two colons, like Class::method
# - Use the -B flag to have a standard BSD representation
# of the symbol list.
# - Use the -x flag to have a hex representation of the symbol
# values. This fills the leading whitespaces, thus simplifying
# the sed statement.
# - Eliminate all entries except those with either "B", "D"
# or "T" key letters. We are interested only in the global
# (extern) BSS, DATA and TEXT symbols. With the same statement
# we eliminate object member lines relevant to AIX 4.
# - Eliminate entries containing a dot. We can have a dot only
# as a symbol prefix, but such symbols are undefined externs.
# - Eliminate everything including the key letter, so that we're
# left with just the symbol name.
# - Eliminate all entries containing two colons, like Class::method
#

# Use -X32_64 if it appears to be implemented in this version of 'nm'.
NM=/usr/ccs/bin/nm
xopt=-X32_64
$NM -e $xopt $1 >/dev/null 2>&1 || xopt=""

$NM -Bex $xopt $inputFiles \
/usr/ccs/bin/nm -Bex -X32_64 $inputFiles \
| sed -e '/ [^BDT] /d' -e '/\./d' -e 's/.* [BDT] //' -e '/::/d' \
| sort | uniq >> $expFileName
17 changes: 2 additions & 15 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -3430,16 +3430,6 @@ $as_echo "#define _BSD_SOURCE 1" >>confdefs.h
define_xopen_source=no;;
Darwin/[12][0-9].*)
define_xopen_source=no;;
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
# or has another value. By not (re)defining it, the defaults come in place.
AIX/4)
define_xopen_source=no;;
AIX/5)
if test `uname -r` -eq 1; then
define_xopen_source=no
fi
;;
# On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
# defining NI_NUMERICHOST.
QNX/6.3.2)
Expand Down Expand Up @@ -5828,10 +5818,7 @@ $as_echo_n "checking EXPORTSYMS... " >&6; }
case $ac_sys_system in
AIX*)
EXPORTSYMS="Modules/python.exp"
if test $ac_sys_release -ge 5 -o \
$ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
EXPORTSFROM=. # the main executable
fi
EXPORTSFROM=. # the main executable
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXPORTSYMS" >&5
Expand Down Expand Up @@ -11604,7 +11591,7 @@ fi
DLINCLDIR=.

# the dlopen() function means we might want to use dynload_shlib.o. some
# platforms, such as AIX, have dlopen(), but don't want to use it.
# platforms have dlopen(), but don't want to use it.
for ac_func in dlopen
do :
ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
Expand Down
17 changes: 2 additions & 15 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -512,16 +512,6 @@ case $ac_sys_system/$ac_sys_release in
define_xopen_source=no;;
Darwin/@<:@[12]@:>@@<:@0-9@:>@.*)
define_xopen_source=no;;
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
# or has another value. By not (re)defining it, the defaults come in place.
AIX/4)
define_xopen_source=no;;
AIX/5)
if test `uname -r` -eq 1; then
define_xopen_source=no
fi
;;
# On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
# defining NI_NUMERICHOST.
QNX/6.3.2)
Expand Down Expand Up @@ -1048,10 +1038,7 @@ AC_MSG_CHECKING(EXPORTSYMS)
case $ac_sys_system in
AIX*)
EXPORTSYMS="Modules/python.exp"
if test $ac_sys_release -ge 5 -o \
$ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
EXPORTSFROM=. # the main executable
fi
EXPORTSFROM=. # the main executable
;;
esac
AC_MSG_RESULT($EXPORTSYMS)
Expand Down Expand Up @@ -3612,7 +3599,7 @@ AC_SUBST(DLINCLDIR)
DLINCLDIR=.

# the dlopen() function means we might want to use dynload_shlib.o. some
# platforms, such as AIX, have dlopen(), but don't want to use it.
# platforms have dlopen(), but don't want to use it.
AC_CHECK_FUNCS(dlopen)

# DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
Expand Down