Patch #615069: Fix build problems on SCO Open Server 5. Backported to 2.2.
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 2870daa..9af63d9 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -587,7 +587,7 @@
         test_winreg
         test_winsound
         """,
-    'unixware5':
+    'unixware7':
         """
         test_al
         test_bsddb
@@ -611,6 +611,63 @@
         test_winreg
         test_winsound
         """,
+    'openunix8':
+        """
+        test_al
+        test_bsddb
+        test_cd
+        test_cl
+        test_dl
+        test_gl
+        test_imgfile
+        test_largefile
+        test_linuxaudiodev
+        test_minidom
+        test_nis
+        test_ntpath
+        test_openpty
+        test_pyexpat
+        test_sax
+        test_socketserver
+        test_sunaudiodev
+        test_sundry
+        test_unicode_file
+        test_winreg
+        test_winsound
+        """,
+    'sco_sv3':
+        """
+        test_al
+        test_asynchat
+        test_bsddb
+        test_cd
+        test_cl
+        test_dl
+        test_fork1
+        test_gettext
+        test_gl
+        test_imgfile
+        test_largefile
+        test_linuxaudiodev
+        test_locale
+        test_minidom
+        test_nis
+        test_ntpath
+        test_openpty
+        test_pyexpat
+        test_queue
+        test_sax
+        test_socketserver
+        test_sunaudiodev
+        test_sundry
+        test_thread
+        test_threaded_import
+        test_threadedtempfile
+        test_threading
+        test_unicode_file
+        test_winreg
+        test_winsound
+        """,
     'riscos':
         """
         test_al
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 65f60f0..aab24cf 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -124,7 +124,7 @@
 #include <term.h>
 #endif
 
-#if !defined(HAVE_NCURSES_H) && (defined(sgi) || defined(__sun))
+#if !defined(HAVE_NCURSES_H) && (defined(sgi) || defined(__sun) || defined(SCO5))
 #define STRICT_SYSV_CURSES       /* Don't use ncurses extensions */
 typedef chtype attr_t;           /* No attr_t type is available */
 #endif
diff --git a/Modules/_hotshot.c b/Modules/_hotshot.c
index 1908a2d..37879b9 100644
--- a/Modules/_hotshot.c
+++ b/Modules/_hotshot.c
@@ -64,6 +64,8 @@
 #ifndef PATH_MAX
 #   ifdef MAX_PATH
 #       define PATH_MAX MAX_PATH
+#   elif defined (_POSIX_PATH_MAX)
+#       define PATH_MAX _POSIX_PATH_MAX
 #   else
 #       error "Need a defn. for PATH_MAX in _hotshot.c"
 #   endif
diff --git a/configure b/configure
index 62d66a1..9c995c3 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 1.347 .
+# From configure.in Revision: 1.348 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.53.
 #
@@ -1295,7 +1295,8 @@
 if test -z "$MACHDEP"
 then
 	ac_sys_system=`uname -s`
-	if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64"; then
+	if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
+	-o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
 		ac_sys_release=`uname -v`
 	else
 		ac_sys_release=`uname -r`
@@ -3459,11 +3460,17 @@
 	*)
 	    OPT="-O3 -Wall -Wstrict-prototypes";;
 	esac
+	case $ac_sys_system in
+	    SCO_SV*) OPT="$OPT -m486 -DSCO5";;
+	esac
 	;;
     *)
 	case $ac_sys_system in
 	OpenUNIX*|UnixWare*)
 	    OPT="-O -K pentium,host,inline,loop_unroll,alloca ";;
+	SCO_SV*)
+	    CFLAGS="$CFLAGS -belf"
+	    OPT="-belf -O -Ki486 -DSCO5";;
 	*)
 	    OPT="-O";;
 	esac
@@ -8891,7 +8898,7 @@
 		then LDSHARED="$(CC) -shared"
 		else LDSHARED="$(CC) -G"
 		fi;;
-	SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";;
+	SCO_SV*) LDSHARED="$(CC) -Wl,-G,-Bexport";;
 	Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
 	CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
 	atheos*) LDSHARED="gcc -shared";;
@@ -8923,7 +8930,11 @@
 		then CCSHARED="-fPIC"
 		else CCSHARED="-KPIC"
 		fi;;
-	SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";;
+	SCO_SV*)
+		if test "$GCC" = "yes"
+		then CCSHARED="-fPIC"
+		else CCSHARED="-Kpic -belf"
+		fi;;
 	Monterey*) CCSHARED="-G";;
 	IRIX*/6*)  case $CC in
 		   *gcc*) CCSHARED="-shared";;
@@ -8963,7 +8974,7 @@
 		fi
 		LINKFORSHARED="$LINKFORSHARED $extra_frameworks";;
 	OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
-	SCO_SV*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";;
+	SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
 	ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
 	FreeBSD*|NetBSD*|OpenBSD*)
 		if [ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]
diff --git a/configure.in b/configure.in
index 5e68e75..27462a6 100644
--- a/configure.in
+++ b/configure.in
@@ -80,7 +80,8 @@
 if test -z "$MACHDEP"
 then
 	ac_sys_system=`uname -s`
-	if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64"; then
+	if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
+	-o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
 		ac_sys_release=`uname -v`
 	else
 		ac_sys_release=`uname -r`
@@ -473,11 +474,17 @@
 	*)
 	    OPT="-O3 -Wall -Wstrict-prototypes";;
 	esac
+	case $ac_sys_system in
+	    SCO_SV*) OPT="$OPT -m486 -DSCO5";;
+	esac
 	;;
     *)
 	case $ac_sys_system in
 	OpenUNIX*|UnixWare*)
 	    OPT="-O -K pentium,host,inline,loop_unroll,alloca ";;
+	SCO_SV*)
+	    CFLAGS="$CFLAGS -belf"
+	    OPT="-belf -O -Ki486 -DSCO5";;
 	*)
 	    OPT="-O";;
 	esac
@@ -940,7 +947,7 @@
 		then LDSHARED="$(CC) -shared"
 		else LDSHARED="$(CC) -G"
 		fi;;
-	SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";;
+	SCO_SV*) LDSHARED="$(CC) -Wl,-G,-Bexport";;
 	Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
 	CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
 	atheos*) LDSHARED="gcc -shared";;
@@ -970,7 +977,11 @@
 		then CCSHARED="-fPIC"
 		else CCSHARED="-KPIC"
 		fi;;
-	SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";;
+	SCO_SV*)
+		if test "$GCC" = "yes"
+		then CCSHARED="-fPIC"
+		else CCSHARED="-Kpic -belf"
+		fi;;
 	Monterey*) CCSHARED="-G";;
 	IRIX*/6*)  case $CC in
 		   *gcc*) CCSHARED="-shared";;
@@ -1008,7 +1019,7 @@
 		fi
 		LINKFORSHARED="$LINKFORSHARED $extra_frameworks";;
 	OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
-	SCO_SV*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";;
+	SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
 	ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
 	FreeBSD*|NetBSD*|OpenBSD*) 
 		if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]