Integrate changes #8687,8736 from maintperl.
Jarkko Hietaniemi [Fri, 9 Feb 2001 16:46:54 +0000 (16:46 +0000)]
HP-UX thread patches from Merijn H. Brand.

Latin nit from Philip Newton.

p4raw-link: @8736 on //depot/maint-5.6/perl: 46c0e3f74b24cd7d4cacf5a7af8403364b68a206
p4raw-link: @8687 on //depot/maint-5.6/perl: 55551d482634089ae7d12e15564ce5358a4701f4

p4raw-id: //depot/perl@8737
p4raw-integrated: from //depot/maint-5.6/perl@8735 'copy in'
hints/hpux.sh (@8609..) README.hpux (@8687..)

README.hpux
hints/hpux.sh

index e850441..7d01983 100644 (file)
@@ -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
index ddcb62f..1d59600 100644 (file)
 # 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"