diff options
-rw-r--r-- | README.hpux | 13 | ||||
-rw-r--r-- | hints/hpux.sh | 62 |
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" |