summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.hpux13
-rw-r--r--hints/hpux.sh62
2 files changed, 53 insertions, 22 deletions
diff --git a/README.hpux b/README.hpux
index e850441095..7d0198353c 100644
--- a/README.hpux
+++ b/README.hpux
@@ -185,8 +185,8 @@ cannot be compiled, or that does not function as expected.
=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
@@ -197,6 +197,13 @@ is listed before -lc in the list of libraries to link Perl with.
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
@@ -268,6 +275,6 @@ With much assistance regarding shared libraries from Marc Sabatella.
=head1 DATE
-Version 0.6.1: 2000/06/20
+Version 0.6.2: 2001-02-02
=cut
diff --git a/hints/hpux.sh b/hints/hpux.sh
index ddcb62feb0..1d59600b7c 100644
--- a/hints/hpux.sh
+++ b/hints/hpux.sh
@@ -23,6 +23,11 @@
# 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>
@@ -334,31 +339,50 @@ EOM
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"