X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/3853ea39bf7dbf26f8bbd5b11cd6ca8f77b7a6b7..fb752ac94711c34b81bc8339870f39dc7f0f26f1:/README.hpux diff --git a/README.hpux b/README.hpux index dd11e49..b0536dc 100644 --- a/README.hpux +++ b/README.hpux @@ -38,6 +38,24 @@ files compiled with gcc-2.9-hppa-991112 If you perform a new installation, then Perl will be installed automatically. +=head2 Using perl from HP's porting centre + +HP porting centre tries very hard to keep up with customer demand and +release updates from the Open Source community. Having precompiled +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 has asked the porting centre to move Open Source binaries +from /opt to /usr/local, so binaries produced since the start +of July 2002 are located in /usr/local. + +One of HP porting centres URL's is http://hpux.connect.org.uk/ +The port currently available is built with GNU gcc. + =head2 Compiling Perl 5 on HP-UX When compiling Perl, you must use an ANSI C compiler. The C compiler @@ -64,6 +82,17 @@ Motorola chipset. The most recent version of PA-RISC at the time of this document's last update is 2.0. +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 +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 + =head2 PA-RISC 1.0 The original version of PA-RISC, HP no longer sells any system with this chip. @@ -97,7 +126,7 @@ The most recent upgrade to the PA-RISC design, it added support for 64-bit integer data. As of the date of this document's last update, the following systems -contain PA-RISC 2.0 chips (this is very likely to be out of date): +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, @@ -105,23 +134,26 @@ contain PA-RISC 2.0 chips (this is very likely to be out of date): 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, RP5400, RP5430, RP5450, RP5470, - RP7400, RP8400, SD16000, SD32000, SD64000, T540, T600, V2000, V2200, + 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 L-Class servers, now renamed HP Server rp5400 series. + HP 9000 N-Class servers, now renamed HP Server rp7400. + =head2 Itanium 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 chips (this is very likely to be out of date): - RX4610, RX9610 - -A complete list of models at the time the OS was built is in the file -/opt/langtools/lib/sched.models. The first column corresponds to the -output of the "uname -m" command (without the leading "9000/"). 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 ;-) + RX2600, RX4610, RX5670, RX9610 =head2 Portability Between PA-RISC Versions @@ -254,6 +286,28 @@ flag -Aa is added to the cpprun and cppstdin variables in the config.sh file (though see the section on 64-bit perl below). If you are using a recent version of the Perl distribution, these flags are set automatically. +=head2 The GNU C Compiler + +When you are going to use the GNU C compiler (gcc), and you don't have +gcc yet, you can either build it yourself from the sources (available +from e.g. http://www.gnu.ai.mit.edu/software/gcc/releases.html) or fetch +a prebuilt binary from the HP porting center. There are two places where +gcc prebuilds can be fetched; the first and best (for HP-UX 11 only) is +http://h21007.www2.hp.com/dspp/tech/tech_TechSoftwareDetailPage_IDX/1,1703,547,00.html +the second is http://hpux.cs.utah.edu/hppd/hpux/Gnu/ where you can also +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 +bzipped tar archives that also include recent GNU binutils and GNU gdb. +Read the instructions on that page to rebuild gcc using itself. + +Building a 64bit capable gcc from source is possible only when you have +the HP C-ANSI C compiler available, which you should use anyway when +building perl. + =head2 Using Large Files with Perl on HP-UX Beginning with HP-UX version 10.20, files larger than 2GB (2^31 bytes) @@ -263,7 +317,8 @@ 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.) +a version of the compiler that support 64-bit operations. See above for +where to find it.) There are some drawbacks to this approach. One is that any extension which calls any file-manipulating C function will need to be recompiled @@ -309,6 +364,31 @@ 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/) +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 +library over time. Perl will build with the first version, but it +will not pass the test suite. Older Oracle versions might be a compelling +reason not to update that library, otherwise please find a newer version +in one of the following patches: PHSS_19739, PHSS_20608, or PHSS_23672 + +reformatted output: + + d3:/usr/lib 106 > what libcma-*.1 + libcma-00000.1: + HP DCE/9000 1.5 Module: libcma.sl (Export) + Date: Apr 29 1996 22:11:24 + libcma-19739.1: + HP DCE/9000 1.5 PHSS_19739-40 Module: libcma.sl (Export) + Date: Sep 4 1999 01:59:07 + libcma-20608.1: + HP DCE/9000 1.5 PHSS_20608 Module: libcma.1 (Export) + Date: Dec 8 1999 18:41:23 + libcma-23672.1: + HP DCE/9000 1.5 PHSS_23672 Module: libcma.1 (Export) + Date: Apr 9 2001 10:01:06 + d3:/usr/lib 107 > + + =head2 64-bit Perl on HP-UX Beginning with HP-UX 11.00, programs compiled under HP-UX can take @@ -340,6 +420,23 @@ expected. 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 +has caused a lot of people many headaches. Read README.hpux in the +DBD::Oracle for much more information. The reason to mention it here +is that Oracle requires a perl built with libcl and libpthread, the +latter even when perl is build without threads. Building perl using +all defaults, but still enabling to build DBD::Oracle later on can be +achieved using + + Configure -A prepend:libswanted='cl pthread ' ... + +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. + =head2 GDBM and Threads on HP-UX If you attempt to compile Perl with threads on an 11.X system and also @@ -398,8 +495,8 @@ the following: #0 0xc004216c in () from /usr/lib/libc.2 #1 0xc00d7550 in __nss_src_state_destr () from /usr/lib/libc.2 #2 0xc00d7768 in __nss_src_state_destr () from /usr/lib/libc.2 - #3 0xc00d78a8 in nss_delete () from /usr/lib/libc.2 - #4 0xc01126d8 in endpwent () from /usr/lib/libc.2 + #3 0xc00d78a8 in nss_delete () from /usr/lib/libc.2 + #4 0xc01126d8 in endpwent () from /usr/lib/libc.2 #5 0xd1950 in Perl_pp_epwent () from ./perl #6 0x94d3c in Perl_runops_standard () from ./perl #7 0x23728 in S_run_body () from ./perl @@ -410,20 +507,21 @@ The key here is the C call. One workaround for this bug seems to be to create add to the file F (at least) the following lines - group: files + group: files passwd: files Whether you are using NIS does not matter. Amazingly enough, -the same bug affects also Solaris. +the same bug also affects Solaris. =head1 AUTHOR Jeff Okamoto +H.Merijn Brand With much assistance regarding shared libraries from Marc Sabatella. =head1 DATE -Version 0.6.4: 2001-10-09 +Version 0.6.7: 2002-09-05 =cut