=head2 Threaded Perl
-It is impossible to compile a version of threaded Perl on any version of
-HP-UX before 10.30, and it is strongly suggested that you be running on
+It is possible to compile a version of threaded Perl on any version of
+HP-UX before 10.30, but it is strongly suggested that you be running on
HP-UX 11.00 at least.
To compile Perl with threads, add -Dusethreads to the arguments of
As of the date of this document, Perl threads are not fully supported on
HP-UX.
+HP-UX versions before 10.30 require a seperate installation of a POSIX
+threads library package. Two examples are the HP DCE package, available
+on "HP-UX Hardware Extensions 3.0, Install and Core OS, Release 10.20,
+April 1999 (B3920-13941)" or the Freely available PTH package, available
+though worldwide HP-UX mirrors of precompiled packages
+(e.g. http://hpux.tn.tudelft.nl/hppd/hpux/alpha.html)
+
=head2 64-bit Perl
Beginning with HP-UX 11.00, programs compiled under HP-UX can take
=head1 DATE
-Version 0.6.1: 2000/06/20
+Version 0.6.2: 2001-02-02
=cut
# HP-UX 10 pthreads hints: Matthew T Harden <mthard@mthard1.monsanto.com>
# From: Dominic Dunlop <domo@computer.org>
# Abort and offer advice if bundled (non-ANSI) C compiler selected
+# From: H.Merijn Brand <h.m.brand@hccnet.nl>
+# ccversion detection
+# perl/64/HP-UX wants libdb-3.0 to be shared ELF 64
+# generic pthread support detection for PTH package
+
# This version: March 8, 2000
# Current maintainer: Jeff Okamoto <okamoto@corp.hp.com>
fi
case "$xxOsRevMajor" in
10)
- # Under 10.X, a threaded perl can be built, but it needs
- # libcma and OLD_PTHREADS_API. Also <pthread.h> needs to
- # be #included before any other includes (in perl.h)
- if [ ! -f /usr/include/pthread.h -o ! -f /usr/lib/libcma.sl ]; then
+ # Under 10.X, a threaded perl can be built
+ if [ -f /usr/include/pthread.h ]; then
+ if [ -f /usr/lib/libcma.sl ]; then
+ # DCE (from Core OS CD) is installed
+
+ # It needs # libcma and OLD_PTHREADS_API. Also <pthread.h>
+ # needs to be #included before any other includes
+ # (in perl.h)
+
+ # HP-UX 10.X uses the old pthreads API
+ d_oldpthreads="$define"
+
+ # include libcma before all the others
+ libswanted="cma $libswanted"
+
+ # tell perl.h to include <pthread.h> before other include files
+ ccflags="$ccflags -DPTHREAD_H_FIRST"
+
+ # CMA redefines select to cma_select, and cma_select expects int *
+ # instead of fd_set * (just like 9.X)
+ selecttype='int *'
+
+ elif [ -f /usr/lib/libpthread.sl ]; then
+ # PTH package is installed
+ libswanted="pthread $libswanted"
+ else
+ libswanted="no_threads_available"
+ fi
+ else
+ libswanted="no_threads_available"
+ fi
+
+ if [ $libswanted = "no_threads_available" ]; then
cat <<EOM >&4
In HP-UX 10.X for POSIX threads you need both of the files
-/usr/include/pthread.h and /usr/lib/libcma.sl.
-Either you must install the CMA package or you must upgrade to HP-UX 11.
+/usr/include/pthread.h and either /usr/lib/libcma.sl or /usr/lib/libpthread.sl.
+Either you must upgrade to HP-UX 11 or install a posix thread library:
+ DCE-CoreTools from HP-UX 10.20 Hardware Extensions 3.0 CD (B3920-13941) or
+ PTH package from i.e. http://hpux.tn.tudelft.nl/hppd/hpux/alpha.html
Cannot continue, aborting.
EOM
exit 1
- fi
-
- # HP-UX 10.X uses the old pthreads API
- d_oldpthreads="$define"
-
- # include libcma before all the others
- libswanted="cma $libswanted"
-
- # tell perl.h to include <pthread.h> before other include files
- ccflags="$ccflags -DPTHREAD_H_FIRST"
+ fi
- # CMA redefines select to cma_select, and cma_select expects int *
- # instead of fd_set * (just like 9.X)
- selecttype='int *'
;;
11 | 12) # 12 may want upping the _POSIX_C_SOURCE datestamp...
ccflags=" -D_POSIX_C_SOURCE=199506L $ccflags"