Make AIX 5 + gcc work in 64bitall
[p5sagit/p5-mst-13.2.git] / README.hpux
index 8a0ce37..8f87006 100644 (file)
@@ -18,19 +18,19 @@ 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
 
-    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
+  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
 files compiled with gcc-2.9-hppa-991112
@@ -88,10 +88,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 +112,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 +122,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,72 +141,44 @@ 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, 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
 
@@ -207,6 +192,21 @@ 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.
 
+=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 Building Dynamic Extensions on HP-UX
 
 HP-UX supports dynamically loadable libraries (shared libraries).
@@ -227,14 +227,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 +273,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).
@@ -338,10 +346,10 @@ On PA-RISC you need a different compiler for 32-bit applications and for
 64-bit applications. On PA-RISC, 32-bit objects and 64-bit objects do
 not mix. period. There is no different behaviour for HP C-ANSI-C or GNU
 gcc. So if you require your perl binary to use 64-bit libraries, like
-Oracle-64bit, you MUST build a 64bit perl.
+Oracle-64bit, you MUST build a 64-bit perl.
 
-Building a 64bit capable gcc on PA-RISC from source is possible only when
-you have the HP C-ANSI C compiler or an already working 64bit binary of
+Building a 64-bit capable gcc on PA-RISC from source is possible only when
+you have the HP C-ANSI C compiler or an already working 64-bit binary of
 gcc available. Best performance for perl is achieved with HP's native
 compiler.
 
@@ -438,12 +446,12 @@ to hold numbers larger than 2^32 with complete precision.
 
 As of the date of this document, Perl is fully 64-bit compliant on
 HP-UX 11.00 and up for both cc- and gcc builds. If you are about to
-build a 64bit perl with GNU gcc, please read the gcc section carefully.
+build a 64-bit perl with GNU gcc, please read the gcc section carefully.
 
 Should a user wish to experiment with compiling Perl in the LP64
 environment, use the -Duse64bitall flag to Configure.  This will force
 Perl to be compiled in a pure LP64 environment (with the +DD64 flag for
-HP C-ANSI-C, with no additional options for GNU gcc 64bit on PA-RISC,
+HP C-ANSI-C, with no additional options for GNU gcc 64-bit on PA-RISC,
 and with -mlp64 for GNU gcc on Itanium).
 If you want to compile Perl using gcc, you will have to get a version of
 the compiler that supports 64-bit operations.)
@@ -474,7 +482,7 @@ achieved using
 Do not forget the space before the trailing quote.
 
 Also note that this does not (yet) work with all configurations,
-it is known to fail with 64bit versions of GCC.
+it is known to fail with 64-bit versions of GCC.
 
 =head2 GDBM and Threads on HP-UX
 
@@ -497,16 +505,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
 
@@ -561,6 +569,6 @@ With much assistance regarding shared libraries from Marc Sabatella.
 
 =head1 DATE
 
-Version 0.7.0: 2004-06-09
+Version 0.7.1: 2004-10-08
 
 =cut