Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"
Mercy Corps

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
Copyright Info
Terms of Use
Privacy Info
Masthead / Impressum
Your Account

Private Messages

News Archive
Submit News
User Articles
Web Links


The Web

Who's Online
There are currently, 74 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here




       This document describes various features of HP's Unix
       operating system (HP-UX) that will affect how Perl version
       5 (hereafter just Perl) is compiled and/or runs.

       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

           swinstall -s /cdrom perl

       assuming you have mounted that CD on /cdrom. In this ver­
       sion 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 files compiled with gcc-2.9-hppa-991112

       If you perform a new installation, then Perl will be
       installed automatically.

       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 bina­
       ries 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.con­
       nect.org.uk/ The port currently available is built with
       GNU gcc.

       file for more gcc-specific details.


       HP's current Unix systems run on its own Precision Archi­
       tecture (PA-RISC) chip.  HP-UX used to run on the Motorola
       MC68000 family of chips, but any machine with this chip in
       it is quite obsolete and this 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.

       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
           # grep L1000-44 /usr/sam/lib/mo/sched.models
           L1000-44        2.0     PA8500

       PA-RISC 1.0

       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

       PA-RISC 1.1

       An upgrade to the PA-RISC design, it shipped for many
       years in many different 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
           K370, K380, K450, K460, K460-EG, K460-XP, K470, K570, K580, L1000,
           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/prod­
       ucts1/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.


       HP also ships servers with the 128-bit Itanium proces­
       sor(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):

           RX2600, RX4610, RX5670, RX9610

       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 run­
       ning 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 executa­
       bles on either the PA-RISC 1.1 or 2.0 platforms.  The com­
       mand-line flags are accepted, but the resulting executable
       will not run when transferred to a PA-RISC 1.0 system.

       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 (cur­
       rently 11.20), and with the exception of a few differences
       detailed below and in later sections, Perl should compile
       with no problems.

       Although PA-RISC binaries can run on Itanium systems, you
       should not 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.

       loaded on a PA-RISC platform.  Shared libraries created on
       a PA-RISC platform can only be loaded on an Itanium plat­
       form if it is a PA-RISC executable that is attempting to
       load the PA-RISC library.  A PA-RISC shared library cannot
       be loaded into an Itanium executable nor vice-versa.

       To create a shared library, the following steps must be

           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.

       (Note that these steps are usually handled automatically
       by the extension's Makefile).

       If these dependent libraries are not listed at shared
       library creation time, you will get fatal "Unresolved sym­
       bol" errors at run time when the library is loaded.

       You may create a shared library that refers to another
       library, which may be either an archive library or a
       shared library.  If this second library is a shared
       library, this is called a "dependent library".  The depen­
       dent library's name is recorded in the main shared
       library, but it is not linked into the shared library.
       Instead, it is loaded when the main shared library is
       loaded.  This can cause problems if you build an extension
       on one system and move it to another system where the
       libraries may not be located in the same place as on the
       first system.

       If the referred library is an archive library, then it is
       treated as a simple collection of .o modules (all of which
       must contain PIC).  These modules are then linked into the
       shared library.

       Note that it is okay to create a library which contains a
       dependent library that is already linked into perl.

       Some extensions, like DB_File and Compress::Zlib
       use/require prebuilt libraries for the perl exten­
       sions/modules to work. If these libraries are built using
       the default configuration, it might happen that you 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
                           -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

       It is no longer possible to link PA-RISC 1.0 shared
       libraries (even though the command-line flags are still

       PA-RISC and Itanium object files are not interchangeable.
       Although you may be able to use ar to create an archive
       library of PA-RISC object files on an Itanium system, you
       cannot link against it using an Itanium link editor.

       The HP ANSI C Compiler

       When using this compiler to build Perl, you should make
       sure that the 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.

       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
       tailPage_IDX/1,1703,547,00.html the second is
       http://hpux.cs.utah.edu/hppd/hpux/Gnu/ where you can also
       when you have the HP C-ANSI C compiler available, which
       you should use anyway when building perl.

       Using Large Files with Perl on HP-UX

       Beginning with HP-UX version 10.20, files larger than 2GB
       (2^31 bytes) may be created and manipulated.  Three sepa­
       rate methods of doing this are available.  Of these meth­
       ods, the best method for Perl is to compile 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 supports 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 (just follow the usual "perl
       Makefile.PL; make; make test; make install" procedure).

       The list of functions that will need to recompiled is:
       creat,         fgetpos,  fopen, freopen,  fsetpos,  fstat,
       fstatvfs, fstatvfsdev,   ftruncate,
       ftw,      lockf,         lseek,
       lstat,         mmap,          nftw, open,          preal­
       loc, stat, statvfs,  statvfsdev,    tmpfile, trun­
       cate, getrlimit,     setrlimit

       Another drawback is only valid for Perl versions before
       5.6.0.  This drawback is that the seek and tell functions
       (both the builtin version and POSIX module version) will
       not perform correctly.

       It is strongly recommended that you use this flag when you
       run Configure.  If you do not do this, but later answer
       the question about large files when Configure asks you,
       you may get a configuration that cannot be compiled, or
       that does not function as expected.

       Threaded Perl on HP-UX

       It is possible to compile a version of threaded Perl on
       any version of HP-UX before 10.30, but it is strongly sug­
       gested that you be running on HP-UX 11.00 at least.

       To compile Perl with threads, add -Dusethreads to the
       arguments of Configure.  Verify that the
       -D_POSIX_C_SOURCE=199506L compiler flag is automatically
       added to the list of flags.  Also make sure that -lpthread
       is listed before -lc in the list of libraries to link Perl
       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
            HP DCE/9000 1.5               Module: libcma.sl (Export)
                                          Date: Apr 29 1996 22:11:24
            HP DCE/9000 1.5 PHSS_19739-40 Module: libcma.sl (Export)
                                          Date: Sep  4 1999 01:59:07
            HP DCE/9000 1.5 PHSS_20608    Module: libcma.1 (Export)
                                          Date: Dec  8 1999 18:41:23
            HP DCE/9000 1.5 PHSS_23672    Module: libcma.1 (Export)
                                          Date: Apr  9 2001 10:01:06
         d3:/usr/lib 107 >

       64-bit Perl on HP-UX

       Beginning with HP-UX 11.00, programs compiled under HP-UX
       can take advantage of the LP64 programming environment
       (LP64 means Longs and Pointers are 64 bits wide).

       Work is being performed on Perl to make it 64-bit compli­
       ant 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 fully 64-bit com­
       pliant 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 Con­
       figure.  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 compil­
       ing Perl with this flag versus the -Duse64bitall flag,
       they should not be noticeable from a Perl user's perspec­

       In both cases, it is strongly recommended that you use
       requires a perl built with libcl and libpthread, the lat­
       ter even when perl is build without threads. Building perl
       using all defaults, but still enabling to build DBD::Ora­
       cle 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 configu­
       rations, it is known to fail with 64bit versions of GCC.

       GDBM and Threads on HP-UX

       If you attempt to compile Perl with threads on an 11.X
       system and also link in the GDBM library, then Perl will
       immediately core dump when it starts up.  The only
       workaround at this point is to relink the GDBM library
       under 11.X, then relink it into Perl.

       NFS filesystems and utime(2) on HP-UX

       If you are compiling Perl on a remotely-mounted NFS
       filesystem, the test io/fs.t may fail on test #18.  This
       appears to be a bug in HP-UX and no fix is currently

       perl -P and // and HP-UX

       In HP-UX Perl is compiled with flags that will cause prob­
       lems if the -P flag of Perl (preprocess Perl code with the
       C preprocessor before perl sees it) is used.  The problem
       is that "//", 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


       will turn into illegal code


       The workaround is to use some other quoting separator than
       "/", like for example "!":


       HP-UX Kernel Parameters (maxdsiz) for Compiling Perl

       By default, HP-UX comes configured with a maximum data
       segment size of 64MB.  This is too small to correctly com­
       pile Perl with the maximum optimization levels.  You can

nss_delete core dump from op/pwent or op/grent

       You may get a bus error core dump from the op/pwent or
       op/grent tests. If compiled with -g you will see a stack
       trace much like 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
         #5  0xd1950 in Perl_pp_epwent () from ./perl
         #6  0x94d3c in Perl_runops_standard () from ./perl
         #7  0x23728 in S_run_body () from ./perl
         #8  0x23428 in perl_run () from ./perl
         #9  0x2005c in main () from ./perl

       The key here is the "nss_delete" call.  One workaround for
       this bug seems to be to create add to the file /etc/nss­
       witch.conf (at least) the following lines

         group: files
         passwd: files

       Whether you are using NIS does not matter.  Amazingly
       enough, the same bug also affects Solaris.


       Jeff Okamoto <okamoto@corp.hp.com> H.Merijn Brand

       With much assistance regarding shared libraries from Marc


       Version 0.6.7: 2002-09-05

perl v5.8.1                 2003-09-02                PERLHPUX(1)



Security Code
Security Code
Type Security Code

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!

Amazon Wish List

Did You Know?
The Linux Tutorial can use your help.


Tell a Friend About Us

Bookmark and Share

Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.09 Seconds