This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Microperl expects C89 (like the rest of Perl).
[perl5.git] / README.hpux
index 7ff045f..113216d 100644 (file)
@@ -68,7 +68,7 @@ difficulty, but also can take advantage of features listed later that
 require the use of HP compiler-specific command-line flags.
 
 If you decide to use gcc, make sure your installation is recent and
-complete, and be sure to read the Perl README file for more gcc-specific
+complete, and be sure to read the Perl INSTALL file for more gcc-specific
 details.
 
 =head2 PA-RISC
@@ -134,17 +134,18 @@ contain PA-RISC 2.0 chips:
     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, RP2400, RP2430, RP2450, RP2470,
-    RP5400, RP5430, RP5450, RP5470, RP7400, RP7410, RP8400, SD16000,
-    SD32000, SD64000, T540, T600, V2000, V2200, V2250, V2500, V2600
+    L2000, L3000, N4000, R380, R390, RP2400, RP2405, RP2430, RP2450,
+    RP2470, RP5400, RP5405, RP5430, RP5450, RP5470, RP7400, RP7405,
+    RP7410, RP8400, SD16000, SD32000, SD64000, T540, T600, V2000, V2200,
+    V2250, V2500, V2600
 
 Just before HP took over Compaq, some systems were renamed. Visit
 http://www.hp.com/products1/servers/server_names.html to see what
 the changes are, or will be.
 
     HP 9000 A-Class servers, now renamed HP Server rp2400 series.
-    HP 9000 N-Class servers, now renamed HP Server rp7400.
     HP 9000 L-Class servers, now renamed HP Server rp5400 series.
+    HP 9000 N-Class servers, now renamed HP Server rp7400.
 
 =head2 Itanium
 
@@ -202,6 +203,7 @@ 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.)
 
     2. Link the shared library using the -b flag.  If the code calls
        any functions in other system libraries (e.g., libm), it must
@@ -237,7 +239,8 @@ run into an error like "invalid loader fixup" during load phase.
 HP is aware of this problem.  Search the HP-UX cxx-dev forums for
 discussions about the subject.  The short answer is that B<everything>
 (all libraries, everything) must be compiled with C<+z> or C<+Z> to be
-PIC (position independent code).  In HP-UX 11.00 or newer the linker
+PIC (position independent code).  (For gcc, that would be
+C<-fpic> or C<-fPIC>).  In HP-UX 11.00 or newer the linker
 error message should tell the name of the offending object file.
 
 A more general approach is to intervene manually, as with an example for
@@ -298,8 +301,9 @@ find the GNU binutils package. (Browse through the list, because there
 are often multiple versions of the same package available).
 
 Above mentioned distributions are depots. H.Merijn Brand has made prebuilt
-gcc binaries available on https://www.beepz.com/personal/merijn/ for
-HP-UX 10.20 and HP-UX 11.00 in both 32- and 64-bit versions. These are
+gcc binaries available on https://www.beepz.com/personal/merijn/ and/or
+http://www.cmve.net/~merijn/ for HP-UX 10.20 and HP-UX 11.00 in both 32-
+and 64-bit versions. Most likely 11i will be available soon. These are
 bzipped tar archives that also include recent GNU binutils and GNU gdb.
 Read the instructions on that page to rebuild gcc using itself.
 
@@ -316,7 +320,7 @@ using the -Duselargefiles flag to Configure.  This causes Perl to be
 compiled using structures and functions in which these are 64 bits wide,
 rather than 32 bits wide.  (Note that this will only work with HP's ANSI
 C compiler.  If you want to compile Perl using gcc, you will have to get
-a version of the compiler that support 64-bit operations. See above for
+a version of the compiler that supports 64-bit operations. See above for
 where to find it.)
 
 There are some drawbacks to this approach.  One is that any extension
@@ -398,11 +402,15 @@ Work is being performed on Perl to make it 64-bit compliant on all
 versions of Unix.  Once this is complete, scalar variables will be able
 to hold numbers larger than 2^32 with complete precision.
 
-As of the date of this document, Perl is not 64-bit compliant on HP-UX.
+As of the date of this document, Perl is fully 64-bit compliant on
+HP-UX 11.00 and up for both ccc- and gcc builds.
 
 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 (via the +DD64 flag).
+(Note that these flags will only work with HP's ANSI C compiler.  If
+you want to compile Perl using gcc, you will have to get a version of
+the compiler that supports 64-bit operations.)
 
 You can also use the -Duse64bitint flag to Configure.  Although there
 are some minor differences between compiling Perl with this flag versus
@@ -415,10 +423,6 @@ questions about 64-bit numbers when Configure asks you, you may get a
 configuration that cannot be compiled, or that does not function as
 expected.
 
-(Note that these Configure flags will only work with HP's ANSI C
-compiler.  If you want to compile Perl using gcc, you will have to get a
-version of the compiler that support 64-bit operations.)
-
 =head2 Oracle on HP-UX
 
 Using perl to connect to Oracle databases through DBI and DBD::Oracle