This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Removed reference to the non-existent C<Opcode::Custom>.
[perl5.git] / README.hpux
index 29c2a98..e92a19b 100644 (file)
@@ -14,30 +14,33 @@ compiled and/or runs.
 
 =head2 Using perl as shipped with HP-UX
 
-As of application release September 2001, HP-UX 11.00 is shipped with
-perl-5.6.1 in /opt/perl. The first occurrence is on CD 5012-7954 and
-can be installed using
+Application release September 2001, HP-UX 11.00 is the first to ship
+with Perl. By the time it was perl-5.6.1 in /opt/perl. The first
+occurrence is on CD 5012-7954 and can be installed using
 
-    swinstall -s /cdrom perl
+  swinstall -s /cdrom perl
 
 assuming you have mounted that CD on /cdrom. In this version the
-following modules are installed:
-
-    ActivePerl::DocTools-0.04   HTML::Parser-3.19   XML::DOM-1.25
-    Archive::Tar-0.072          HTML::Tagset-3.03   XML::Parser-2.27
-    Compress::Zlib-1.08         MIME::Base64-2.11   XML::Simple-1.05
-    Convert::ASN1-0.10          Net-1.07            XML::XPath-1.09
-    Digest::MD5-2.11            PPM-2.1.5           XML::XSLT-0.32
-    File::CounterFile-0.12      SOAP::Lite-0.46     libwww-perl-5.51
-    Font::AFM-1.18              Storable-1.011      libxml-perl-0.07
-    HTML-Tree-3.11              URI-1.11            perl-ldap-0.23
-
-The build is a portable hppa-1.1 multithread build that supports large
+following modules were installed:
+
+  ActivePerl::DocTools-0.04   HTML::Parser-3.19   XML::DOM-1.25
+  Archive::Tar-0.072          HTML::Tagset-3.03   XML::Parser-2.27
+  Compress::Zlib-1.08         MIME::Base64-2.11   XML::Simple-1.05
+  Convert::ASN1-0.10          Net-1.07            XML::XPath-1.09
+  Digest::MD5-2.11            PPM-2.1.5           XML::XSLT-0.32
+  File::CounterFile-0.12      SOAP::Lite-0.46     libwww-perl-5.51
+  Font::AFM-1.18              Storable-1.011      libxml-perl-0.07
+  HTML-Tree-3.11              URI-1.11            perl-ldap-0.23
+
+The build was a portable hppa-1.1 multithread build that supports large
 files compiled with gcc-2.9-hppa-991112
 
 If you perform a new installation, then Perl will be installed
 automatically.
 
+More recent (preinstalled) HP-UX systems have more recent versions of
+Perl and the updated modules.
+
 =head2 Using perl from HP's porting centre
 
 HP porting centre tries very hard to keep up with customer demand and
@@ -47,7 +50,8 @@ Perl binaries available is obvious.
 The HP porting centres are limited in what systems they are allowed
 to port to and they usually choose the two most recent OS versions
 available. This means that at the moment of writing, there are only
-HPUX-11.00 and 11-20/22 (IA64) ports available on the porting centres.
+HP-UX 11.11 (pa-risc 2.0) and HP-UX 11.23 (Itanium 2) ports available
+on the porting centres.
 
 HP has asked the porting centre to move Open Source binaries
 from /opt to /usr/local, so binaries produced since the start
@@ -80,7 +84,8 @@ document will not attempt to address issues for compiling Perl on the
 Motorola chipset.
 
 The most recent version of PA-RISC at the time of this document's last
-update is 2.0.
+update is 2.0. HP PA-RISC systems are usually refered to with model
+description "HP 9000".
 
 A complete list of models at the time the OS was built is in the file
 /usr/sam/lib/mo/sched.models. The first column corresponds to the last
@@ -88,10 +93,23 @@ part of the output of the "model" command.  The second column is the
 PA-RISC version and the third column is the exact chip type used.
 (Start browsing at the bottom to prevent confusion ;-)
 
-    # model
-    9000/800/L1000-44
-    # grep L1000-44 /usr/sam/lib/mo/sched.models
-    L1000-44        2.0     PA8500
+  # model
+  9000/800/L1000-44
+  # grep L1000-44 /usr/sam/lib/mo/sched.models
+  L1000-44        2.0     PA8500
+
+=head2 Portability Between PA-RISC Versions
+
+An executable compiled on a PA-RISC 2.0 platform will not execute on a
+PA-RISC 1.1 platform, even if they are running the same version of
+HP-UX.  If you are building Perl on a PA-RISC 2.0 platform and want that
+Perl to also run on a PA-RISC 1.1, the compiler flags +DAportable and
++DS32 should be used.
+
+It is no longer possible to compile PA-RISC 1.0 executables on either
+the PA-RISC 1.1 or 2.0 platforms.  The command-line flags are accepted,
+but the resulting executable will not run when transferred to a PA-RISC
+1.0 system.
 
 =head2 PA-RISC 1.0
 
@@ -99,8 +117,8 @@ The original version of PA-RISC, HP no longer sells any system with this chip.
 
 The following systems contained PA-RISC 1.0 chips:
 
-    600, 635, 645, 808, 815, 822, 825, 832, 834, 835, 840, 842, 845, 850,
-    852, 855, 860, 865, 870, 890
+  600, 635, 645, 808, 815, 822, 825, 832, 834, 835, 840, 842, 845, 850,
+  852, 855, 860, 865, 870, 890
 
 =head2 PA-RISC 1.1
 
@@ -109,16 +127,16 @@ system.
 
 The following systems contain with PA-RISC 1.1 chips:
 
-    705, 710, 712, 715, 720, 722, 725, 728, 730, 735, 742, 743, 744, 745,
-    747, 750, 755, 770, 777, 778, 779, 800, 801, 803, 806, 807, 809, 811,
-    813, 816, 817, 819, 821, 826, 827, 829, 831, 837, 839, 841, 847, 849,
-    851, 856, 857, 859, 867, 869, 877, 887, 891, 892, 897, A180, A180C,
-    B115, B120, B132L, B132L+, B160L, B180L, C100, C110, C115, C120,
-    C160L, D200, D210, D220, D230, D250, D260, D310, D320, D330, D350,
-    D360, D410, DX0, DX5, DXO, E25, E35, E45, E55, F10, F20, F30, G30,
-    G40, G50, G60, G70, H20, H30, H40, H50, H60, H70, I30, I40, I50, I60,
-    I70, J200, J210, J210XC, K100, K200, K210, K220, K230, K400, K410,
-    K420, S700i, S715, S744, S760, T500, T520
+  705, 710, 712, 715, 720, 722, 725, 728, 730, 735, 742, 743, 744, 745,
+  747, 750, 755, 770, 777, 778, 779, 800, 801, 803, 806, 807, 809, 811,
+  813, 816, 817, 819, 821, 826, 827, 829, 831, 837, 839, 841, 847, 849,
+  851, 856, 857, 859, 867, 869, 877, 887, 891, 892, 897, A180, A180C,
+  B115, B120, B132L, B132L+, B160L, B180L, C100, C110, C115, C120,
+  C160L, D200, D210, D220, D230, D250, D260, D310, D320, D330, D350,
+  D360, D410, DX0, DX5, DXO, E25, E35, E45, E55, F10, F20, F30, G30,
+  G40, G50, G60, G70, H20, H30, H40, H50, H60, H70, I30, I40, I50, I60,
+  I70, J200, J210, J210XC, K100, K200, K210, K220, K230, K400, K410,
+  K420, S700i, S715, S744, S760, T500, T520
 
 =head2 PA-RISC 2.0
 
@@ -128,77 +146,49 @@ The most recent upgrade to the PA-RISC design, it added support for
 As of the date of this document's last update, the following systems
 contain PA-RISC 2.0 chips:
 
-    700, 780, 781, 782, 783, 785, 802, 804, 810, 820, 861, 871, 879, 889,
-    893, 895, 896, 898, 899, A400, A500, B1000, B2000, C130, C140, C160,
-    C180, C180+, C180-XP, C200+, C400+, C3000, C360, C3600, CB260, D270,
-    D280, D370, D380, D390, D650, J220, J2240, J280, J282, J400, J410,
-    J5000, J5500XM, J5600, J7000, J7600, K250, K260, K260-EG, K270, K360,
-    K370, K380, K450, K460, K460-EG, K460-XP, K470, K570, K580, L1000,
-    L2000, L3000, N4000, R380, R390, SD16000, SD32000, SD64000, T540,
-    T600, V2000, V2200, V2250, V2500, V2600
+  700, 780, 781, 782, 783, 785, 802, 804, 810, 820, 861, 871, 879, 889,
+  893, 895, 896, 898, 899, A400, A500, B1000, B2000, C130, C140, C160,
+  C180, C180+, C180-XP, C200+, C400+, C3000, C360, C3600, CB260, D270,
+  D280, D370, D380, D390, D650, J220, J2240, J280, J282, J400, J410,
+  J5000, J5500XM, J5600, J7000, J7600, K250, K260, K260-EG, K270, K360,
+  K370, K380, K450, K460, K460-EG, K460-XP, K470, K570, K580, L1000,
+  L2000, L3000, N4000, R380, R390, SD16000, SD32000, SD64000, T540,
+  T600, V2000, V2200, V2250, V2500, V2600
 
 Just before HP took over Compaq, some systems were renamed. the link
 that contained the explanation is dead, so here's a short summary:
 
-    HP 9000 A-Class servers, now renamed HP Server rp2400 series.
-    HP 9000 L-Class servers, now renamed HP Server rp5400 series.
-    HP 9000 N-Class servers, now renamed HP Server rp7400.
+  HP 9000 A-Class servers, now renamed HP Server rp2400 series.
+  HP 9000 L-Class servers, now renamed HP Server rp5400 series.
+  HP 9000 N-Class servers, now renamed HP Server rp7400.
 
-    rp2400, rp2405, rp2430, rp2450, rp2470, rp3410, rp3440, rp5400,
-    rp5405, rp5430, rp5450, rp5470, rp7400, rp7405, rp7410, rp7420,
-    rp8400, rp8420, Superdome
+  rp2400, rp2405, rp2430, rp2450, rp2470, rp3410, rp3440, rp4410,
+  rp4440, rp5400, rp5405, rp5430, rp5450, rp5470, rp7400, rp7405,
+  rp7410, rp7420, rp8400, rp8420, Superdome
 
 The current naming convention is:
 
-    aadddd
-    ||||`+- 00 - 99 relative capacity & newness (upgrades, etc.)
-    |||`--- unique number for each architecture to ensure different
-    |||     systems do not have the same numbering across
-    |||     architectures
-    ||`---- 1 - 9 identifies family and/or relative positioning
-    ||
-    |`----- c = ia32 (cisc)
-    |       p = pa-risc
-    |       x = ia-64 (Itanium & Itanium 2)
-    |       h = housing
-    `------ t = tower
-            r = rack optimized
-            s = super scalable
-            b = blade
-            sa = appliance
-
-=head2 Itanium & Itanium 2
-
-HP also ships servers with the 128-bit Itanium processor(s). As of the
-date of this document's last update, the following systems contain
-Itanium or Itanium 2 chips (this is very likely to be out of date):
-
-    rx1600, rx2600, rx2600hptc, rx4610, rx4640, rx5670, rx7620, rx8620,
-    rx9610
-
-To see all about your machine, type
-
-    # model
-    ia64 hp server rx2600
-    # /usr/contrib/bin/machinfo
-
-=head2 Portability Between PA-RISC Versions
-
-An executable compiled on a PA-RISC 2.0 platform will not execute on a
-PA-RISC 1.1 platform, even if they are running the same version of
-HP-UX.  If you are building Perl on a PA-RISC 2.0 platform and want that
-Perl to also run on a PA-RISC 1.1, the compiler flags +DAportable and
-+DS32 should be used.
-
-It is no longer possible to compile PA-RISC 1.0 executables on either
-the PA-RISC 1.1 or 2.0 platforms.  The command-line flags are accepted,
-but the resulting executable will not run when transferred to a PA-RISC
-1.0 system.
+  aadddd
+  ||||`+- 00 - 99 relative capacity & newness (upgrades, etc.)
+  |||`--- unique number for each architecture to ensure different
+  |||     systems do not have the same numbering across
+  |||     architectures
+  ||`---- 1 - 9 identifies family and/or relative positioning
+  ||
+  |`----- c = ia32 (cisc)
+  |       p = pa-risc
+  |       x = ia-64 (Itanium & Itanium 2)
+  |       h = housing
+  `------ t = tower
+          r = rack optimized
+          s = super scalable
+          b = blade
+          sa = appliance
 
 =head2 Itanium Processor Family and HP-UX
 
 HP-UX also runs on the new Itanium processor.  This requires the use
-of a different version of HP-UX (currently 11.23 or 11i v1.6), and with
+of a different version of HP-UX (currently 11.23 or 11i v2), and with
 the exception of a few differences detailed below and in later sections,
 Perl should compile with no problems.
 
@@ -207,6 +197,24 @@ attempt to use a PA-RISC version of Perl on an Itanium system.  This is
 because shared libraries created on an Itanium system cannot be loaded
 while running a PA-RISC executable.
 
+HP Itanium 2 systems are usually refered to with model description
+"HP Integrity".
+
+=head2 Itanium & Itanium 2
+
+HP also ships servers with the 128-bit Itanium processor(s). As of the
+date of this document's last update, the following systems contain
+Itanium or Itanium 2 chips (this is very likely to be out of date):
+
+  rx1600, rx1620, rx2600, rx2600hptc, rx2620, rx4610, rx4640, rx5670,
+  rx7620, rx8620, rx9610
+
+To see all about your machine, type
+
+  # model
+  ia64 hp server rx2600
+  # /usr/contrib/bin/machinfo
+
 =head2 Building Dynamic Extensions on HP-UX
 
 HP-UX supports dynamically loadable libraries (shared libraries).
@@ -227,14 +235,14 @@ library cannot be loaded into an Itanium executable nor vice-versa.
 
 To create a shared library, the following steps must be performed:
 
-    1. Compile source modules with +z or +Z flag to create a .o module
-       which contains Position-Independent Code (PIC).  The linker will
-       tell you in the next step if +Z was needed.
-       (For gcc, the appropriate flag is -fpic or -fPIC.)
+  1. Compile source modules with +z or +Z flag to create a .o module
+     which contains Position-Independent Code (PIC).  The linker will
+     tell you in the next step if +Z was needed.
+     (For gcc, the appropriate flag is -fpic or -fPIC.)
 
-    2. Link the shared library using the -b flag.  If the code calls
-       any functions in other system libraries (e.g., libm), it must
-       be included on this line.
+  2. Link the shared library using the -b flag.  If the code calls
+     any functions in other system libraries (e.g., libm), it must
+     be included on this line.
 
 (Note that these steps are usually handled automatically by the extension's
 Makefile).
@@ -273,32 +281,40 @@ error message should tell the name of the offending object file.
 A more general approach is to intervene manually, as with an example for
 the DB_File module, which requires SleepyCat's libdb.sl:
 
-    # cd .../db-3.2.9/build_unix
-    # vi Makefile
-    ... add +Z to all cflags to create shared objects
-    CFLAGS=         -c $(CPPFLAGS) +Z -Ae +O2 +Onolimit \
-                   -I/usr/local/include -I/usr/include/X11R6
-    CXXFLAGS=       -c $(CPPFLAGS) +Z -Ae +O2 +Onolimit \
-                   -I/usr/local/include -I/usr/include/X11R6
-
-    # make clean
-    # make
-    # mkdir tmp
-    # cd tmp
-    # ar x ../libdb.a
-    # ld -b -o libdb-3.2.sl *.o
-    # mv libdb-3.2.sl /usr/local/lib
-    # rm *.o
-    # cd /usr/local/lib
-    # rm -f libdb.sl
-    # ln -s libdb-3.2.sl libdb.sl
-
-    # cd .../DB_File-1.76
-    # make distclean
-    # perl Makefile.PL
-    # make
-    # make test
-    # make install
+  # cd .../db-3.2.9/build_unix
+  # vi Makefile
+  ... add +Z to all cflags to create shared objects
+  CFLAGS=         -c $(CPPFLAGS) +Z -Ae +O2 +Onolimit \
+                 -I/usr/local/include -I/usr/include/X11R6
+  CXXFLAGS=       -c $(CPPFLAGS) +Z -Ae +O2 +Onolimit \
+                 -I/usr/local/include -I/usr/include/X11R6
+
+  # make clean
+  # make
+  # mkdir tmp
+  # cd tmp
+  # ar x ../libdb.a
+  # ld -b -o libdb-3.2.sl *.o
+  # mv libdb-3.2.sl /usr/local/lib
+  # rm *.o
+  # cd /usr/local/lib
+  # rm -f libdb.sl
+  # ln -s libdb-3.2.sl libdb.sl
+
+  # cd .../DB_File-1.76
+  # make distclean
+  # perl Makefile.PL
+  # make
+  # make test
+  # make install
+
+As of db-4.2.x it is no longer needed to do this by hand. Sleepycat
+has changed the configuration process to add +z on HP-UX automatically.
+
+  # cd .../db-4.2.25/build_unix
+  # env CFLAGS=+DA2.0w LDFLAGS=+DA2.0w ../dist/configure
+
+should work to generate 64bit shared libraries for HP-UX 11.00 and 11i.
 
 It is no longer possible to link PA-RISC 1.0 shared libraries (even
 though the command-line flags are still present).
@@ -398,8 +414,7 @@ HP-UX versions before 10.30 require a separate 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/)
+on H.Merijn's site (http://mirrors.develooper.com/hpux/).
 
 If you are going to use the HP DCE package, the library used for threading
 is /usr/lib/libcma.sl, but there have been multiple updates of that
@@ -425,6 +440,9 @@ reformatted output:
                                    Date: Apr  9 2001 10:01:06
   d3:/usr/lib 107 >
 
+For building perl to support Oracle, it needs to be linked with libcl
+and libpthread. So even if your perl is an unthreaded build, these
+libraries might be required. See "Oracle on HP-UX" below.
 
 =head2 64-bit Perl on HP-UX
 
@@ -497,16 +515,16 @@ perl sees it) is used.  The problem is that C<//>, being a C++-style
 until-end-of-line comment, will disappear along with the remainder
 of the line.  This means that common Perl constructs like
 
-    s/foo//;
+  s/foo//;
 
 will turn into illegal code
 
-    s/foo
+  s/foo
 
 The workaround is to use some other quoting separator than C<"/">,
 like for example C<"!">:
 
-    s!foo!!;
+  s!foo!!;
 
 =head2 HP-UX Kernel Parameters (maxdsiz) for Compiling Perl
 
@@ -555,12 +573,12 @@ the same bug also affects Solaris.
 =head1 AUTHOR
 
 Jeff Okamoto <okamoto@corp.hp.com>
-H.Merijn Brand <h.m.brand@hccnet.nl>
+H.Merijn Brand <h.m.brand@xs4all.nl>
 
 With much assistance regarding shared libraries from Marc Sabatella.
 
 =head1 DATE
 
-Version 0.7.0: 2004-06-09
+Version 0.7.4: 2005-06-02
 
 =cut