Commit 130fb175 authored by Martin v. Löwis's avatar Martin v. Löwis

Patch #418659: Fixes for UnixWare and ReliantUnix.

back-out 1.215 of configure.in and 1.34 of Makefile.pre.in
Check for -Kpthread compiler support, and use this as the sole option
for MT if available.
parent d0cd95ce
...@@ -314,7 +314,7 @@ $(LIBRARY): $(LIBRARY_OBJS) ...@@ -314,7 +314,7 @@ $(LIBRARY): $(LIBRARY_OBJS)
$(AR) cr $@ $(MODOBJS) $(AR) cr $@ $(MODOBJS)
$(RANLIB) $@ $(RANLIB) $@
# This rule is only here for DG/UX, UnixWare, and BeOS!!! # This rule is only here for DG/UX and BeOS!!!
libpython$(VERSION).so: $(LIBRARY) libpython$(VERSION).so: $(LIBRARY)
case `uname -s | tr -d '/ ' | tr '[A-Z]' '[a-z]'` in \ case `uname -s | tr -d '/ ' | tr '[A-Z]' '[a-z]'` in \
*dgux*) \ *dgux*) \
...@@ -322,9 +322,6 @@ libpython$(VERSION).so: $(LIBRARY) ...@@ -322,9 +322,6 @@ libpython$(VERSION).so: $(LIBRARY)
(cd dgux;ar x ../$^;ld -G -o ../$@ * ); \ (cd dgux;ar x ../$^;ld -G -o ../$@ * ); \
/bin/rm -rf ./dgux \ /bin/rm -rf ./dgux \
;; \ ;; \
unixware*) \
$(LDSHARED) -o $@ $(LIBRARY_OBJS) \
;; \
beos) \ beos) \
$(AR) so $(LIBRARY) $@ \ $(AR) so $(LIBRARY) $@ \
;; \ ;; \
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -52,9 +52,7 @@ AC_MSG_CHECKING(MACHDEP) ...@@ -52,9 +52,7 @@ AC_MSG_CHECKING(MACHDEP)
if test -z "$MACHDEP" if test -z "$MACHDEP"
then then
ac_sys_system=`uname -s` ac_sys_system=`uname -s`
if test "$ac_sys_system" = "AIX" -o \ if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64"; then
"$ac_sys_system" = "Monterey64" -o \
"$ac_sys_system" = "UnixWare"; then
ac_sys_release=`uname -v` ac_sys_release=`uname -v`
else else
ac_sys_release=`uname -r` ac_sys_release=`uname -r`
...@@ -127,15 +125,8 @@ AC_ARG_WITH(gcc, [ --without-gcc never use gcc], [ ...@@ -127,15 +125,8 @@ AC_ARG_WITH(gcc, [ --without-gcc never use gcc], [
;; ;;
Monterey*) Monterey*)
RANLIB=: RANLIB=:
without_gcc= without_gcc=;;
;; *) without_gcc=no;;
UnixWare*)
RANLIB=:
without_gcc=
;;
*)
without_gcc=no
;;
esac]) esac])
AC_MSG_RESULT($without_gcc) AC_MSG_RESULT($without_gcc)
...@@ -273,9 +264,6 @@ cygwin*) ...@@ -273,9 +264,6 @@ cygwin*)
LDLIBRARY='libpython$(VERSION).dll.a' LDLIBRARY='libpython$(VERSION).dll.a'
DLLLIBRARY='libpython$(VERSION).dll' DLLLIBRARY='libpython$(VERSION).dll'
;; ;;
unixware*)
LDLIBRARY='libpython$(VERSION).so'
;;
esac esac
AC_MSG_RESULT($LDLIBRARY) AC_MSG_RESULT($LDLIBRARY)
...@@ -530,6 +518,24 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then ...@@ -530,6 +518,24 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
fi fi
fi fi
# -Kpthread, if available, provides the right #defines
# and linker options to make pthread_create available
AC_MSG_CHECKING(whether $CC accepts -Kpthread)
AC_CACHE_VAL(ac_cv_kpthread,
[ac_save_cc="$CC"
CC="$CC -Kpthread"
AC_TRY_LINK([#include <pthread.h>],[pthread_create(0,0,0,0)],
ac_cv_kpthread=yes,
ac_cv_kpthread=no)
CC="$ac_save_cc"])
# GCC does not reject -Kpthread as an illegal option, it merely complains that
# it is unrecognized
if test "$GCC" = "yes"
then ac_cv_kpthread="no, we have gcc"
fi
AC_MSG_RESULT($ac_cv_kpthread)
dnl # check for ANSI or K&R ("traditional") preprocessor dnl # check for ANSI or K&R ("traditional") preprocessor
dnl AC_MSG_CHECKING(for C preprocessor type) dnl AC_MSG_CHECKING(for C preprocessor type)
dnl AC_TRY_COMPILE([ dnl AC_TRY_COMPILE([
...@@ -779,7 +785,7 @@ then ...@@ -779,7 +785,7 @@ then
UnixWare*) UnixWare*)
if test "$GCC" = "yes" if test "$GCC" = "yes"
then LDSHARED="$(CC) -shared" then LDSHARED="$(CC) -shared"
else LDSHARED="ld -G -dy -Bdynamic" else LDSHARED="$(CC) -G"
fi;; fi;;
SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";; SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";;
Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";; Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
...@@ -809,7 +815,7 @@ then ...@@ -809,7 +815,7 @@ then
UnixWare*) UnixWare*)
if test "$GCC" = "yes" if test "$GCC" = "yes"
then CCSHARED="-fPIC" then CCSHARED="-fPIC"
else CCSHARED="-KPIC -G -dy -Bdynamic" else CCSHARED="-KPIC"
fi;; fi;;
SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";; SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";;
Monterey*) CCSHARED="-G";; Monterey*) CCSHARED="-G";;
...@@ -840,7 +846,7 @@ then ...@@ -840,7 +846,7 @@ then
# loading of any modules which reference it in System.framework # loading of any modules which reference it in System.framework
next/4*|next/5*) LINKFORSHARED="-u __dummy -framework System" ;; next/4*|next/5*) LINKFORSHARED="-u __dummy -framework System" ;;
Darwin/*) LINKFORSHARED="-u __dummy -u _PyMac_Error -framework System -framework Foundation -framework Carbon" ;; Darwin/*) LINKFORSHARED="-u __dummy -u _PyMac_Error -framework System -framework Foundation -framework Carbon" ;;
UnixWare*) LINKFORSHARED="-dy -Bdynamic -Wl,-Bexport";; UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
SCO_SV*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";; SCO_SV*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";;
ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";; ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
FreeBSD*|NetBSD*) FreeBSD*|NetBSD*)
...@@ -964,87 +970,84 @@ AC_MSG_RESULT($with_threads) ...@@ -964,87 +970,84 @@ AC_MSG_RESULT($with_threads)
if test "$with_threads" = "no" if test "$with_threads" = "no"
then then
USE_THREAD_MODULE="#" USE_THREAD_MODULE="#"
elif test "$ac_cv_kpthread" = "yes"
then
CC="$CC -Kpthread"
AC_DEFINE(WITH_THREAD)
AC_DEFINE(_POSIX_THREADS)
LIBOBJS="$LIBOBJS thread.o"
else else
if test "$ac_sys_system" = "UnixWare" if test ! -z "$with_threads" -a -d "$with_threads"
then then LDFLAGS="$LDFLAGS -L$with_threads"
CC="${CC} -Kthread" fi
LIBOBJS="$LIBOBJS thread.o" if test ! -z "$withval" -a -d "$withval"
AC_DEFINE(WITH_THREAD) then LDFLAGS="$LDFLAGS -L$withval"
AC_DEFINE(_POSIX_THREADS) fi
USE_THREAD_MODULE="" AC_DEFINE(_REENTRANT)
else AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
if test ! -z "$with_threads" -a -d "$with_threads" AC_DEFINE(C_THREADS)
then LDFLAGS="$LDFLAGS -L$with_threads" LIBOBJS="$LIBOBJS thread.o"],[
fi AC_MSG_CHECKING(for --with-pth)
if test ! -z "$withval" -a -d "$withval" AC_ARG_WITH(pth,
then LDFLAGS="$LDFLAGS -L$withval" [ --with-pth use GNU pth threading libraries], [
fi AC_MSG_RESULT($withval)
AC_DEFINE(_REENTRANT) AC_DEFINE(WITH_THREAD)
AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD) AC_DEFINE(HAVE_PTH)
AC_DEFINE(C_THREADS) LIBS="-lpth $LIBS"
LIBOBJS="$LIBOBJS thread.o"],[ LIBOBJS="$LIBOBJS thread.o"],[
AC_MSG_CHECKING(for --with-pth) AC_MSG_RESULT(no)
AC_ARG_WITH(pth, AC_CHECK_LIB(pthread, pthread_create, [AC_DEFINE(WITH_THREAD)
[ --with-pth use GNU pth threading libraries], [ AC_DEFINE(_POSIX_THREADS)
AC_MSG_RESULT($withval) LIBS="-lpthread $LIBS"
AC_DEFINE(WITH_THREAD) LIBOBJS="$LIBOBJS thread.o"],[
AC_DEFINE(HAVE_PTH) AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
LIBS="-lpth $LIBS" case $ac_sys_system in
LIBOBJS="$LIBOBJS thread.o"],[ Darwin*) ;;
AC_MSG_RESULT(no) *) AC_DEFINE(_POSIX_THREADS);;
AC_CHECK_LIB(pthread, pthread_create, [AC_DEFINE(WITH_THREAD) esac
AC_DEFINE(_POSIX_THREADS) LIBOBJS="$LIBOBJS thread.o"],[
LIBS="-lpthread $LIBS" AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
LIBOBJS="$LIBOBJS thread.o"],[ AC_DEFINE(BEOS_THREADS)
AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD) LIBOBJS="$LIBOBJS thread.o"],[
case $ac_sys_system in AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
Darwin*) ;; AC_DEFINE(_POSIX_THREADS)
*) AC_DEFINE(_POSIX_THREADS);; LIBS="$LIBS -lpthreads"
esac LIBOBJS="$LIBOBJS thread.o"], [
LIBOBJS="$LIBOBJS thread.o"],[ AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD) AC_DEFINE(_POSIX_THREADS)
AC_DEFINE(BEOS_THREADS) LIBS="$LIBS -lc_r"
LIBOBJS="$LIBOBJS thread.o"],[ LIBOBJS="$LIBOBJS thread.o"], [
AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD) AC_CHECK_LIB(thread, __d6_pthread_create, [AC_DEFINE(WITH_THREAD)
AC_DEFINE(_POSIX_THREADS) AC_DEFINE(_POSIX_THREADS)
LIBS="$LIBS -lpthreads" LIBS="$LIBS -lthread"
LIBOBJS="$LIBOBJS thread.o"], [ LIBOBJS="$LIBOBJS thread.o"], [
AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD) AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
AC_DEFINE(_POSIX_THREADS) AC_DEFINE(_POSIX_THREADS)
LIBS="$LIBS -lc_r" LIBS="$LIBS -lpthread"
LIBOBJS="$LIBOBJS thread.o"], [ LIBOBJS="$LIBOBJS thread.o"], [
AC_CHECK_LIB(thread, __d6_pthread_create, [AC_DEFINE(WITH_THREAD) AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
AC_DEFINE(_POSIX_THREADS) AC_DEFINE(_POSIX_THREADS)
LIBS="$LIBS -lthread" LIBS="$LIBS -lcma"
LIBOBJS="$LIBOBJS thread.o"], [ LIBOBJS="$LIBOBJS thread.o"],[
AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD) USE_THREAD_MODULE="#"])
AC_DEFINE(_POSIX_THREADS) ])])])])])])])])])
LIBS="$LIBS -lpthread"
LIBOBJS="$LIBOBJS thread.o"], [ AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD) LIBS="$LIBS -lmpc"
AC_DEFINE(_POSIX_THREADS) LIBOBJS="$LIBOBJS thread.o"
LIBS="$LIBS -lcma" USE_THREAD_MODULE=""])
LIBOBJS="$LIBOBJS thread.o"],[ AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
USE_THREAD_MODULE="#"]) LIBS="$LIBS -lthread"
])])])])])])])])]) LIBOBJS="$LIBOBJS thread.o"
USE_THREAD_MODULE=""])
AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
LIBS="$LIBS -lmpc" if test "$USE_THREAD_MODULE" != "#"
LIBOBJS="$LIBOBJS thread.o" then
USE_THREAD_MODULE=""]) # If the above checks didn't disable threads, (at least) OSF1
AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD) # needs this '-threads' argument during linking.
LIBS="$LIBS -lthread" case $ac_sys_system in
LIBOBJS="$LIBOBJS thread.o" OSF1) LDLAST=-threads;;
USE_THREAD_MODULE=""]) esac
if test "$USE_THREAD_MODULE" != "#"
then
# If the above checks didn't disable threads, (at least) OSF1
# needs this '-threads' argument during linking.
case $ac_sys_system in
OSF1) LDLAST=-threads;;
esac
fi
fi fi
fi fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment