This patch partly (some stuff went in already) ports Python to Monterey.

- Fix bug in thread_pthread.h::PyThread_get_thread_ident() where
  sizeof(pthread) < sizeof(long).
- Add 'configure' for:
	- SIZEOF_PTHREAD is pthread_t can be included via <pthread.h>
	- setting Monterey system name
	- appropriate CC,LINKCC,LDSHARED,OPT, and CCSHARED for Monterey
- Add section in README for Monterey build
This commit is contained in:
Trent Mick 2000-08-23 21:33:05 +00:00
parent b745a0481b
commit 635f6fb0e9
6 changed files with 466 additions and 318 deletions

View file

@ -171,6 +171,13 @@ PyThread_start_new_thread(void (*func)(void *), void *arg)
return success != 0 ? 0 : 1;
}
/* XXX This implementation is considered (to quote Tim Peters) "inherently
hosed" because:
- It does not guanrantee the promise that a non-zero integer is returned.
- The cast to long is inherently unsafe.
- It is not clear that the 'volatile' (for AIX?) and ugly casting in the
latter return statement (for Alpha OSF/1) are any longer necessary.
*/
long
PyThread_get_thread_ident(void)
{
@ -179,7 +186,11 @@ PyThread_get_thread_ident(void)
PyThread_init_thread();
/* Jump through some hoops for Alpha OSF/1 */
threadid = pthread_self();
#if SIZEOF_PTHREAD_T <= SIZEOF_LONG
return (long) threadid;
#else
return (long) *(long *) &threadid;
#endif
}
static void

8
README
View file

@ -307,6 +307,14 @@ OS/2: If you are running Warp3 or Warp4 and have IBM's VisualAge C/C++
and type NMAKE. Threading and sockets are supported by default
in the resulting binaries of PYTHON15.DLL and PYTHON.EXE.
Monterey (64-bit AIX):
The current Monterey C compiler (Visual Age) uses the OBJECT_MODE={32|64}
environment variable to set the compilation mode to either 32-bit or
64-bit (32-bit mode is the default). Presumably you want 64-bit
compilation mode for this 64-bit OS. As a result you must first set
OBJECT_MODE=64 in you environment before configuring (./configure) or
building (make) Python on Monterey.
Configuring threads
-------------------

View file

@ -157,6 +157,9 @@
/* The number of bytes in a time_t. */
#undef SIZEOF_TIME_T
/* The number of bytes in a pthread_t. */
#undef SIZEOF_PTHREAD_T
/* Defined to enable large file support when an off_t is bigger than a long
and long long is available and at least as big as an off_t. You may need
to add some flags for configuration and compilation to enable this mode.

View file

@ -216,6 +216,9 @@
/* The number of bytes in a time_t. */
#undef SIZEOF_TIME_T
/* The number of bytes in a pthread_t. */
#undef SIZEOF_PTHREAD_T
/* Defined to enable large file support when an off_t is bigger than a long
and long long is available and at least as big as an off_t. You may need
to add some flags for configuration and compilation to enable this mode.

717
configure vendored

File diff suppressed because it is too large Load diff

View file

@ -43,7 +43,7 @@ AC_MSG_CHECKING(MACHDEP)
if test -z "$MACHDEP"
then
ac_sys_system=`uname -s`
if test "$ac_sys_system" = "AIX" ; then
if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64"; then
ac_sys_release=`uname -v`
else
ac_sys_release=`uname -r`
@ -148,6 +148,9 @@ AC_ARG_WITH(gcc, [ --without-gcc never use gcc], [
;;
esac
;;
Monterey*)
RANLIB=:
without_gcc=;;
*) without_gcc=no;;
esac])
AC_MSG_RESULT($without_gcc)
@ -207,6 +210,10 @@ BeOS*)
case $CC in
cc) CC=cc;;
esac;;
Monterey*)
case $CC in
cc) CC="$CC -Wl,-Bexport";;
esac;;
esac
# LDLIBRARY is the name of the library to link against (as opposed to the
@ -236,6 +243,8 @@ then
LDLIBRARY='libpython$(VERSION).so';;
dgux*)
LINKCC="LD_RUN_PATH=$libdir \$(PURIFY) \$(CC)";;
Monterey64*)
LINKCC="\$(PURIFY) \$(CC) -L/usr/lib/ia64l64";;
*) LINKCC="\$(PURIFY) \$(CC)";;
esac
fi
@ -308,6 +317,11 @@ then
esac
fi
# The current (beta) Monterey compiler dies with optimizations
case $ac_sys_system in
Monterey*) OPT="";;
esac
if test "$ac_arch_flags"
then
OPT="$OPT $ac_arch_flags"
@ -450,6 +464,30 @@ AC_MSG_RESULT($ac_cv_sizeof_time_t)
AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t)
# if have pthread_t then define SIZEOF_PTHREAD_T
AC_MSG_CHECKING(for pthread_t)
have_pthread_t=no
AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = (pthread_t)0;], have_pthread_t=yes)
AC_MSG_RESULT($have_pthread_t)
if test "$have_pthread_t" = yes ; then
# AC_CHECK_SIZEOF() doesn't include <pthread.h>.
AC_MSG_CHECKING(size of pthread_t)
AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
[AC_TRY_RUN([#include <stdio.h>
#include <pthread.h>
main()
{
FILE *f=fopen("conftestval", "w");
if (!f) exit(1);
fprintf(f, "%d\n", sizeof(pthread_t));
exit(0);
}], ac_cv_sizeof_pthread_t=`cat conftestval`, ac_cv_sizeof_pthread_t=0)
])
AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t)
fi
# Minor variations in building a framework between NextStep versions 4 and 5
AC_SUBST(LIBTOOL_CRUFT)
case $ac_sys_system/$ac_sys_release in
@ -547,6 +585,7 @@ then
LDSHARED="ld -Bshareable"
fi;;
SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";;
Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
*) LDSHARED="ld";;
esac
fi
@ -566,6 +605,7 @@ then
FreeBSD*|OpenBSD*) CCSHARED="-fpic";;
NetBSD*) CCSHARED="-fPIC";;
SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";;
Monterey*) CCSHARED="-G";;
IRIX*/6*) case $CC in
*gcc*) CCSHARED="-shared";;
*) CCSHARED="";;