jon@rdt.monash.edu.au (Jonathan Giddy) writes:
> Markus Stenberg <mstenber@cc.Helsinki.FI> writes:
> >Is HPUX-11 thread support tested/implemented/whatnot?
> Implemented - yes, tested - not in your environment (until now).
Very well, let's see about it now ;-)
> >This at least does not look promising..
> ># /opt/python/bin/python
> >pthread_mutex_init: Invalid argument
> >Memory fault(coredump)
>
> OK, this is probably due to an incorrect guess about which version of
> pthreads is being used.
>
> If you look at the beginning of the source file Python/thread_pthread.h
> you'll see a series of preprocessor tests, defining PY_PTHREAD_D4 and
> friends.
>
> It seems HPUX selects either Draft 4 or the final standard, based on whether
> _DECTHREADS_ is defined. Try placing the following after the #endif
>
> #if defined(PY_PTHREAD_D4)
> #error PY_PTHREAD_D4
> #elif defined(PY_PTHREAD_D6)
> #error PY_PTHREAD_D6
> #elif defined(PY_PTHREAD_D7)
> #error PY_PTHREAD_D7
> #else
> #error PY_PTHREAD_STD
> #endif
This resulted in PY_PTHREAD_STD as follows.
> make clean and recompile. This will (hopefully) give you an error like:
> In file included from thread.c:146:
> thread_pthread.h:88: #error PY_PTHREAD_STD
>
> which tells you which version was assumed. Then, try undefining the
> assumed value, and replace it with the likely correct value.
>
> So, if you get PY_PTHREAD_STD, then replace the code above with:
> #undef PY_PTHREAD_STD
> #define PY_PTHREAD_D4
No luck with _this_, I'm afraid.. nor with D6 or D7. D6 and STD compiled,
but both resulted in coredump_ok binaries.
> then make clean; make
>
> That will hopefully get you running. A more permanent solution requires
> someone who knows the history of pthreads on HPUX.
>
> Jon.
-Markus
--
"I don't truly see how _playing_ gods and demons is odder than
_believing_ in them." [response to one of those anti-RPG comments]