From 779ffc066edd5b046549be196fca5abf8b4d244d Mon Sep 17 00:00:00 2001
From: =?utf8?q?Martin=20v=2E=20L=C3=B6wis?= <martin@v.loewis.de>
Date: Mon, 2 Dec 2002 22:17:01 +0000
Subject: [PATCH] Add compile-time errors for unsupported systems.

---
 Python/thread_pthread.h |  5 +++++
 README                  | 28 +++++++++++++++++++++++++---
 configure               | 23 ++++++++++++++++++++++-
 configure.in            | 21 +++++++++++++++++++++
 4 files changed, 73 insertions(+), 4 deletions(-)

diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index c9f695726e..6f6fde496b 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -31,11 +31,13 @@
 #if defined(__ultrix) && defined(__mips) && defined(_DECTHREADS_)
 /* _DECTHREADS_ is defined in cma.h which is included by pthread.h */
 #  define PY_PTHREAD_D4
+#  error Systems with PY_PTHREAD_D4 are unsupported. See README.
 
 #elif defined(__osf__) && defined (__alpha)
 /* _DECTHREADS_ is defined in cma.h which is included by pthread.h */
 #  if !defined(_PTHREAD_ENV_ALPHA) || defined(_PTHREAD_USE_D4) || defined(PTHREAD_USE_D4)
 #    define PY_PTHREAD_D4
+#    error Systems with PY_PTHREAD_D4 are unsupported. See README.
 #  else
 #    define PY_PTHREAD_STD
 #  endif
@@ -50,13 +52,16 @@
 #    define PY_PTHREAD_STD
 #  else
 #    define PY_PTHREAD_D7
+#    error Systems with PY_PTHREAD_D7 are unsupported. See README.
 #  endif
 
 #elif defined(__DGUX)
 #  define PY_PTHREAD_D6
+#  error Systems with PY_PTHREAD_D6 are unsupported. See README.
 
 #elif defined(__hpux) && defined(_DECTHREADS_)
 #  define PY_PTHREAD_D4
+#  error Systems with PY_PTHREAD_D4 are unsupported. See README.
 
 #else /* Default case */
 #  define PY_PTHREAD_STD
diff --git a/README b/README
index fbea07ea17..abea8dba14 100644
--- a/README
+++ b/README
@@ -224,6 +224,28 @@ old K&R-C-only compilers is no longer possible.  ANSI C compilers are
 available for all modern systems, either in the form of updated
 compilers from the vendor, or one of the free compilers (gcc).
 
+Unsupported systems
+-------------------
+
+A number of features are not supported in Python 2.3 anymore. Some
+support code is still present, but will be removed in Python 2.4.
+If you still need to use current Python versions on these systems,
+please send a message to python-dev@python.org indicating that you
+volunteer to support this system.
+
+More specifically, the following systems are not supported any
+longer:
+- SunOS 4
+- DYNIX
+- dgux
+- Minix
+- Irix 4 and --with-sgi-dl
+- Linux 1
+- Systems defining __d6_pthread_create (configure.in)
+- Systems defining PY_PTHREAD_D4, PY_PTHREAD_D6,
+  or PY_PTHREAD_D7 in thread_pthread.h
+- Systems using --with-dl-dld
+
 Platform specific notes
 -----------------------
 
@@ -351,6 +373,7 @@ UnixWare: There are known bugs in the math library of the system, as well as
 SunOS 4.x: When using the SunPro C compiler, you may want to use the
 	'-Xa' option instead of '-Xc', to enable some needed non-ANSI
 	Sunisms.
+	THIS SYSTEM IS NO LONGER SUPPORTED.
 
 NeXT:   Not supported anymore. Start with the MacOSX/Darwin code if you
 	want to revive it.
@@ -886,7 +909,7 @@ Modules/getpath.o.
 	library) by passing --with-sgi-dl=DIRECTORY where DIRECTORY
 	is the absolute pathname of the dl library.  (Don't bother on
 	IRIX 5, it already has dynamic linking using SunOS style
-	shared libraries.)  Support for this feature is deprecated.
+	shared libraries.)  THIS OPTION IS UNSUPPORTED.
 
 --with-dl-dld: Dynamic loading of modules is rumored to be supported
 	on some other systems: VAX (Ultrix), Sun3 (SunOS 3.4), Sequent
@@ -902,8 +925,7 @@ Modules/getpath.o.
 	the absolute pathname of the dl emulation library and
 	DLD_DIRECTORY is the absolute pathname of the GNU dld library.
 	(Don't bother on SunOS 4 or 5, they already have dynamic
-	linking using shared libraries.)  Support for this feature is
-	deprecated.
+	linking using shared libraries.)  THIS OPTION IS UNSUPPORTED.
 
 --with-libm, --with-libc: It is possible to specify alternative
 	versions for the Math library (default -lm) and the C library
diff --git a/configure b/configure
index 2a8fa9acea..099f867933 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 1.371 .
+# From configure.in Revision: 1.372 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.53 for python 2.3.
 #
@@ -2999,6 +2999,20 @@ _ACEOF
 fi
 
 
+# Check for unsupported systems
+case $ac_sys_system/$ac_sys_release in
+SunOS/4*|DYNIX/*|dgux*/*|IRIX/4*|Linux*/1*)
+   echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
+   echo See README for details.
+   exit 1;;
+esac
+
+if test "$MINIX" = yes; then
+   echo This system \(MINIX\) is no longer supported.
+   echo Read README for details.
+   exit 1
+fi
+
 
 echo "$as_me:$LINENO: checking for --with-suffix" >&5
 echo $ECHO_N "checking for --with-suffix... $ECHO_C" >&6
@@ -10866,6 +10880,9 @@ if test $ac_cv_lib_thread___d6_pthread_create = yes; then
 #define WITH_THREAD 1
 _ACEOF
 
+    echo Systems with __d6_pthread_create are not supported anymore.
+    echo See README
+    exit 1
     posix_threads=yes
     LIBS="$LIBS -lthread"
     THREADOBJ="Python/thread.o"
@@ -11733,6 +11750,8 @@ if test "${with_sgi_dl+set}" = set; then
 
 echo "$as_me:$LINENO: result: $withval" >&5
 echo "${ECHO_T}$withval" >&6
+echo --with-sgi-dl is unsupported; see README
+exit 1
 
 cat >>confdefs.h <<\_ACEOF
 #define WITH_SGI_DL 1
@@ -11762,6 +11781,8 @@ if test "${with_dl_dld+set}" = set; then
 
 echo "$as_me:$LINENO: result: $withval" >&5
 echo "${ECHO_T}$withval" >&6
+echo --with-dl-dld is unsupported; see README
+exit 1
 
 cat >>confdefs.h <<\_ACEOF
 #define WITH_DL_DLD 1
diff --git a/configure.in b/configure.in
index 7c86412b2c..62f2aaeb6e 100644
--- a/configure.in
+++ b/configure.in
@@ -261,6 +261,20 @@ AC_PROG_CC
 AC_AIX
 AC_MINIX
 
+# Check for unsupported systems
+case $ac_sys_system/$ac_sys_release in
+SunOS/4*|DYNIX/*|dgux*/*|IRIX/4*|Linux*/1*)
+   echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
+   echo See README for details.
+   exit 1;;
+esac
+
+if test "$MINIX" = yes; then
+   echo This system \(MINIX\) is no longer supported.
+   echo Read README for details.
+   exit 1
+fi
+
 AC_EXEEXT
 AC_MSG_CHECKING(for --with-suffix)
 AC_ARG_WITH(suffix,
@@ -1338,6 +1352,9 @@ pthread_create (NULL, NULL, start_routine, NULL)], [
     LIBS="$LIBS -lc_r"
     THREADOBJ="Python/thread.o"], [
     AC_CHECK_LIB(thread, __d6_pthread_create, [AC_DEFINE(WITH_THREAD)
+    echo Systems with __d6_pthread_create are not supported anymore.
+    echo See README
+    exit 1
     posix_threads=yes
     LIBS="$LIBS -lthread"
     THREADOBJ="Python/thread.o"], [
@@ -1650,6 +1667,8 @@ AC_ARG_WITH(sgi-dl,
             AC_HELP_STRING(--with-sgi-dl=DIRECTORY, IRIX 4 dynamic linking),
 [
 AC_MSG_RESULT($withval)
+echo --with-sgi-dl is unsupported; see README
+exit 1
 AC_DEFINE(WITH_SGI_DL, 1,
   [Define if you want to use SGI (IRIX 4) dynamic linking.
    This requires the "dl" library by Jack Jansen,
@@ -1670,6 +1689,8 @@ AC_ARG_WITH(dl-dld,
             AC_HELP_STRING(--with-dl-dld=DL_DIR, GNU dynamic linking),
 [
 AC_MSG_RESULT($withval)
+echo --with-dl-dld is unsupported; see README
+exit 1
 AC_DEFINE(WITH_DL_DLD, 1, 
   [Define if you want to emulate SGI (IRIX 4) dynamic linking.
    This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
-- 
2.40.0