=head1 NAME
-README.hpux - Perl version 5 on Hewlett-Packard Unix (HP-UX) systems
+perlhpux - Perl version 5 on Hewlett-Packard Unix (HP-UX) systems
=head1 DESCRIPTION
swinstall -s /cdrom perl
-assuming you have mounted that CD on /cdrom. In this version the
-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
+assuming you have mounted that CD on /cdrom.
That 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 (a newer) Perl will be installed
-automatically. Preinstalled HP-UX systems now slao have more recent versions
+automatically. Pre-installed HP-UX systems now have more recent versions
of Perl and the updated modules.
The official (threaded) builds from HP, as they are shipped on the
Application DVD/CD's are available on
-http://www.software.hp.com/portal/swdepot/displayProductInfo.do?productNumber=PERL
+L<http://www.software.hp.com/portal/swdepot/displayProductInfo.do?productNumber=PERL>
for both PA-RISC and IPF (Itanium Processor Family). They are built
with the HP ANSI-C compiler. Up till 5.8.8 that was done by ActiveState.
perl.Perl5-32 D.5.8.8.B 32-bit 5.8.8 Perl Programming Language with Extensions
perl.Perl5-64 D.5.8.8.B 64-bit 5.8.8 Perl Programming Language with Extensions
+To see what is installed on your system:
+
+ # swlist -R perl
+ # perl E.5.8.8.J Perl Programming Language
+ # perl.Perl5-32 E.5.8.8.J 32-bit Perl Programming Language with Extensions
+ perl.Perl5-32.PERL-MAN E.5.8.8.J 32-bit Perl Man Pages for IA
+ perl.Perl5-32.PERL-RUN E.5.8.8.J 32-bit Perl Binaries for IA
+ # perl.Perl5-64 E.5.8.8.J 64-bit Perl Programming Language with Extensions
+ perl.Perl5-64.PERL-MAN E.5.8.8.J 64-bit Perl Man Pages for IA
+ perl.Perl5-64.PERL-RUN E.5.8.8.J 64-bit Perl Binaries for IA
+
=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.
+HP porting centre tries to keep up with customer demand and release
+updates from the Open Source community. Having precompiled Perl binaries
+available is obvious, though "up-to-date" is something relative. At the
+moment of writing only perl-5.10.1 was available (with 5.16.3 being the
+latest stable release from the porters point of view).
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
-HP-UX 11.11 (pa-risc 2.0) and HP-UX 11.23 (Itanium 2) ports available
-on the porting centres.
+available.
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/
+One of HP porting centres URL's is L<http://hpux.connect.org.uk/>
The port currently available is built with GNU gcc.
+=head2 Other prebuilt perl binaries
+
+To get even more recent perl depots for the whole range of HP-UX, visit
+H.Merijn Brand's site at L<http://mirrors.develooper.com/hpux/#Perl>.
+Carefully read the notes to see if the available versions suit your needs.
+
=head2 Compiling Perl 5 on HP-UX
When compiling Perl, you must use an ANSI C compiler. The C compiler
| cores | | PA-8900/rp34x0 | 2014 |
+--------+----------------+----------------+-----------------+
-From http://www.hp.com/products1/evolution/9000/faqs.html
+From L<http://www.hp.com/products1/evolution/9000/faqs.html>
The last order date for HP 9000 systems was December 31, 2008.
the following systems contain Itanium or Itanium 2 chips (this is likely
to be out of date):
- BL60p, BL860c, BL870c, cx2600, cx2620, rx1600, rx1620, rx2600,
- rx2600hptc, rx2620, rx2660, rx3600, rx4610, rx4640, rx5670,
+ BL60p, BL860c, BL870c, BL890c, cx2600, cx2620, rx1600, rx1620, rx2600,
+ rx2600hptc, rx2620, rx2660, rx2800, rx3600, rx4610, rx4640, rx5670,
rx6600, rx7420, rx7620, rx7640, rx8420, rx8620, rx8640, rx9610,
sx1000, sx2000
Not all architectures (PA = PA-RISC, IPF = Itanium Processor Family)
support all versions of HP-UX, here is a short list
- HP-UX version Kernel Architecture
- ------------- ------ ------------
- 10.20 32 bit PA
- 11.00 32/64 PA
- 11.11 11i v1 32/64 PA
- 11.22 11i v2 64 IPF
- 11.23 11i v2 64 PA & IPF
- 11.31 11i v3 64 PA & IPF
+ HP-UX version Kernel Architecture End-of-factory support
+ ------------- ------ ------------ ----------------------------------
+ 10.20 32 bit PA 30-Jun-2003
+ 11.00 32/64 PA 31-Dec-2006
+ 11.11 11i v1 32/64 PA 31-Dec-2015
+ 11.22 11i v2 64 IPF 30-Apr-2004
+ 11.23 11i v2 64 PA & IPF 31-Dec-2015
+ 11.31 11i v3 64 PA & IPF 31-Dec-2020 (PA) 31-Dec-2022 (IPF)
See for the full list of hardware/OS support and expected end-of-life
-http://www.hp.com/go/hpuxservermatrix
+L<http://www.hp.com/go/hpuxservermatrix>
=head2 Building Dynamic Extensions on HP-UX
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. gcc prebuilds can be
-fetched from
-http://h21007.www2.hp.com/dspp/tech/tech_TechSoftwareDetailPage_IDX/1,1703,547,00.html
+from e.g. L<http://gcc.gnu.org/mirrors.html>) or fetch
+a prebuilt binary from the HP porting center
+at L<http://hpux.connect.org.uk/hppd/cgi-bin/search?term=gcc&Search=Search>
+or from the DSPP (you need to be a member) at
+L<http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801?ciid=2a08725cc2f02110725cc2f02110275d6e10RCRD&jumpid=reg_r1002_usen_c-001_title_r0001>
(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 http://mirrors.develooper.com/hpux/ and/or
-http://www.cmve.net/~merijn/ for HP-UX 10.20, HP-UX 11.00, HP-UX 11.11
-(HP-UX 11i v1), and HP-UX 11.23 (HP-UX 11i v2) 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.
+Most mentioned distributions are depots. H.Merijn Brand has made prebuilt
+gcc binaries available on L<http://mirrors.develooper.com/hpux/> and/or
+L<http://www.cmve.net/~merijn/> for HP-UX 10.20 (only 32bit), HP-UX 11.00,
+HP-UX 11.11 (HP-UX 11i v1), and HP-UX 11.23 (HP-UX 11i v2 PA-RISC) in both
+32- and 64-bit versions. For HP-UX 11.23 IPF and HP-UX 11.31 IPF depots are
+available too. The IPF versions do not need two versions of GNU gcc.
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
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
-on H.Merijn's site (http://mirrors.develooper.com/hpux/). The use of PTH
+on H.Merijn's site (L<http://mirrors.develooper.com/hpux/>). The use of PTH
will be unsupported in perl-5.12 and up and is rather buggy in 5.11.x.
If you are going to use the HP DCE package, the library used for threading
Whether you are using NIS does not matter. Amazingly enough,
the same bug also affects Solaris.
+=head1 error: pasting ")" and "l" does not give a valid preprocessing token
+
+There seems to be a broken system header file in HP-UX 11.00 that
+breaks perl building in 32bit mode with GNU gcc-4.x causing this
+error. The same file for HP-UX 11.11 (even though the file is older)
+does not show this failure, and has the correct definition, so the
+best fix is to patch the header to match:
+
+ --- /usr/include/inttypes.h 2001-04-20 18:42:14 +0200
+ +++ /usr/include/inttypes.h 2000-11-14 09:00:00 +0200
+ @@ -72,7 +72,7 @@
+ #define UINT32_C(__c) __CONCAT_U__(__c)
+ #else /* __LP64 */
+ #define INT32_C(__c) __CONCAT__(__c,l)
+ -#define UINT32_C(__c) __CONCAT__(__CONCAT_U__(__c),l)
+ +#define UINT32_C(__c) __CONCAT__(__c,ul)
+ #endif /* __LP64 */
+
+ #define INT64_C(__c) __CONCAT_L__(__c,l)
+
+=head1 Redeclaration of "sendpath" with a different storage class specifier
+
+The following compilation warnings may happen in HP-UX releases
+earlier than 11.31 but are harmless:
+
+ cc: "/usr/include/sys/socket.h", line 535: warning 562: Redeclaration of "sendfile" with a different storage class specifier: "sendfile" will have internal linkage.
+ cc: "/usr/include/sys/socket.h", line 536: warning 562: Redeclaration of "sendpath" with a different storage class specifier: "sendpath" will have internal linkage.
+
+They seem to be caused by broken system header files, and also other
+open source projects are seeing them. The following HP-UX patches
+should make the warnings go away:
+
+ CR JAGae12001: PHNE_27063
+ Warning 562 on sys/socket.h due to redeclaration of prototypes
+
+ CR JAGae16787:
+ Warning 562 from socket.h sendpath/sendfile -D_FILEFFSET_BITS=64
+
+ CR JAGae73470 (11.23)
+ ER: Compiling socket.h with cc -D_FILEFFSET_BITS=64 warning 267/562
+
=head1 Miscellaneous
HP-UX 11 Y2K patch "Y2K-1100 B.11.00.B0125 HP-UX Core OS Year 2000
With much assistance regarding shared libraries from Marc Sabatella.
-=head1 DATE
-
-Version 0.8.3: 2008-06-24
-
=cut