1If you read this file _as_is_, just ignore the funny characters you see. 2It is written in the POD format (see pod/perlpod.pod) which is specially 3designed to be readable as is. 4 5=head1 NAME 6 7README.hpux - Perl version 5 on Hewlett-Packard Unix (HP-UX) systems 8 9=head1 DESCRIPTION 10 11This document describes various features of HP's Unix operating system 12(HP-UX) that will affect how Perl version 5 (hereafter just Perl) is 13compiled and/or runs. 14 15=head2 Using perl as shipped with HP-UX 16 17Application release September 2001, HP-UX 11.00 is the first to ship 18with Perl. By the time it was perl-5.6.1 in /opt/perl. The first 19occurrence is on CD 5012-7954 and can be installed using 20 21 swinstall -s /cdrom perl 22 23assuming you have mounted that CD on /cdrom. In this version the 24following modules were installed: 25 26 ActivePerl::DocTools-0.04 HTML::Parser-3.19 XML::DOM-1.25 27 Archive::Tar-0.072 HTML::Tagset-3.03 XML::Parser-2.27 28 Compress::Zlib-1.08 MIME::Base64-2.11 XML::Simple-1.05 29 Convert::ASN1-0.10 Net-1.07 XML::XPath-1.09 30 Digest::MD5-2.11 PPM-2.1.5 XML::XSLT-0.32 31 File::CounterFile-0.12 SOAP::Lite-0.46 libwww-perl-5.51 32 Font::AFM-1.18 Storable-1.011 libxml-perl-0.07 33 HTML-Tree-3.11 URI-1.11 perl-ldap-0.23 34 35The build was a portable hppa-1.1 multithread build that supports large 36files compiled with gcc-2.9-hppa-991112 37 38If you perform a new installation, then Perl will be installed 39automatically. 40 41More recent (preinstalled) HP-UX systems have more recent versions of 42Perl and the updated modules. 43 44=head2 Using perl from HP's porting centre 45 46HP porting centre tries very hard to keep up with customer demand and 47release updates from the Open Source community. Having precompiled 48Perl binaries available is obvious. 49 50The HP porting centres are limited in what systems they are allowed 51to port to and they usually choose the two most recent OS versions 52available. This means that at the moment of writing, there are only 53HP-UX 11.11 (pa-risc 2.0) and HP-UX 11.23 (Itanium 2) ports available 54on the porting centres. 55 56HP has asked the porting centre to move Open Source binaries 57from /opt to /usr/local, so binaries produced since the start 58of July 2002 are located in /usr/local. 59 60One of HP porting centres URL's is http://hpux.connect.org.uk/ 61The port currently available is built with GNU gcc. 62 63=head2 Compiling Perl 5 on HP-UX 64 65When compiling Perl, you must use an ANSI C compiler. The C compiler 66that ships with all HP-UX systems is a K&R compiler that should only be 67used to build new kernels. 68 69Perl can be compiled with either HP's ANSI C compiler or with gcc. The 70former is recommended, as not only can it compile Perl with no 71difficulty, but also can take advantage of features listed later that 72require the use of HP compiler-specific command-line flags. 73 74If you decide to use gcc, make sure your installation is recent and 75complete, and be sure to read the Perl INSTALL file for more gcc-specific 76details. 77 78=head2 PA-RISC 79 80HP's current Unix systems run on its own Precision Architecture 81(PA-RISC) chip. HP-UX used to run on the Motorola MC68000 family of 82chips, but any machine with this chip in it is quite obsolete and this 83document will not attempt to address issues for compiling Perl on the 84Motorola chipset. 85 86The most recent version of PA-RISC at the time of this document's last 87update is 2.0. HP PA-RISC systems are usually refered to with model 88description "HP 9000". 89 90A complete list of models at the time the OS was built is in the file 91/usr/sam/lib/mo/sched.models. The first column corresponds to the last 92part of the output of the "model" command. The second column is the 93PA-RISC version and the third column is the exact chip type used. 94(Start browsing at the bottom to prevent confusion ;-) 95 96 # model 97 9000/800/L1000-44 98 # grep L1000-44 /usr/sam/lib/mo/sched.models 99 L1000-44 2.0 PA8500 100 101=head2 Portability Between PA-RISC Versions 102 103An executable compiled on a PA-RISC 2.0 platform will not execute on a 104PA-RISC 1.1 platform, even if they are running the same version of 105HP-UX. If you are building Perl on a PA-RISC 2.0 platform and want that 106Perl to also run on a PA-RISC 1.1, the compiler flags +DAportable and 107+DS32 should be used. 108 109It is no longer possible to compile PA-RISC 1.0 executables on either 110the PA-RISC 1.1 or 2.0 platforms. The command-line flags are accepted, 111but the resulting executable will not run when transferred to a PA-RISC 1121.0 system. 113 114=head2 PA-RISC 1.0 115 116The original version of PA-RISC, HP no longer sells any system with this chip. 117 118The following systems contained PA-RISC 1.0 chips: 119 120 600, 635, 645, 808, 815, 822, 825, 832, 834, 835, 840, 842, 845, 850, 121 852, 855, 860, 865, 870, 890 122 123=head2 PA-RISC 1.1 124 125An upgrade to the PA-RISC design, it shipped for many years in many different 126system. 127 128The following systems contain with PA-RISC 1.1 chips: 129 130 705, 710, 712, 715, 720, 722, 725, 728, 730, 735, 742, 743, 744, 745, 131 747, 750, 755, 770, 777, 778, 779, 800, 801, 803, 806, 807, 809, 811, 132 813, 816, 817, 819, 821, 826, 827, 829, 831, 837, 839, 841, 847, 849, 133 851, 856, 857, 859, 867, 869, 877, 887, 891, 892, 897, A180, A180C, 134 B115, B120, B132L, B132L+, B160L, B180L, C100, C110, C115, C120, 135 C160L, D200, D210, D220, D230, D250, D260, D310, D320, D330, D350, 136 D360, D410, DX0, DX5, DXO, E25, E35, E45, E55, F10, F20, F30, G30, 137 G40, G50, G60, G70, H20, H30, H40, H50, H60, H70, I30, I40, I50, I60, 138 I70, J200, J210, J210XC, K100, K200, K210, K220, K230, K400, K410, 139 K420, S700i, S715, S744, S760, T500, T520 140 141=head2 PA-RISC 2.0 142 143The most recent upgrade to the PA-RISC design, it added support for 14464-bit integer data. 145 146As of the date of this document's last update, the following systems 147contain PA-RISC 2.0 chips: 148 149 700, 780, 781, 782, 783, 785, 802, 804, 810, 820, 861, 871, 879, 889, 150 893, 895, 896, 898, 899, A400, A500, B1000, B2000, C130, C140, C160, 151 C180, C180+, C180-XP, C200+, C400+, C3000, C360, C3600, CB260, D270, 152 D280, D370, D380, D390, D650, J220, J2240, J280, J282, J400, J410, 153 J5000, J5500XM, J5600, J7000, J7600, K250, K260, K260-EG, K270, K360, 154 K370, K380, K450, K460, K460-EG, K460-XP, K470, K570, K580, L1000, 155 L2000, L3000, N4000, R380, R390, SD16000, SD32000, SD64000, T540, 156 T600, V2000, V2200, V2250, V2500, V2600 157 158Just before HP took over Compaq, some systems were renamed. the link 159that contained the explanation is dead, so here's a short summary: 160 161 HP 9000 A-Class servers, now renamed HP Server rp2400 series. 162 HP 9000 L-Class servers, now renamed HP Server rp5400 series. 163 HP 9000 N-Class servers, now renamed HP Server rp7400. 164 165 rp2400, rp2405, rp2430, rp2450, rp2470, rp3410, rp3440, rp4410, 166 rp4440, rp5400, rp5405, rp5430, rp5450, rp5470, rp7400, rp7405, 167 rp7410, rp7420, rp8400, rp8420, Superdome 168 169The current naming convention is: 170 171 aadddd 172 ||||`+- 00 - 99 relative capacity & newness (upgrades, etc.) 173 |||`--- unique number for each architecture to ensure different 174 ||| systems do not have the same numbering across 175 ||| architectures 176 ||`---- 1 - 9 identifies family and/or relative positioning 177 || 178 |`----- c = ia32 (cisc) 179 | p = pa-risc 180 | x = ia-64 (Itanium & Itanium 2) 181 | h = housing 182 `------ t = tower 183 r = rack optimized 184 s = super scalable 185 b = blade 186 sa = appliance 187 188=head2 Itanium Processor Family and HP-UX 189 190HP-UX also runs on the new Itanium processor. This requires the use 191of a different version of HP-UX (currently 11.23 or 11i v2), and with 192the exception of a few differences detailed below and in later sections, 193Perl should compile with no problems. 194 195Although PA-RISC binaries can run on Itanium systems, you should not 196attempt to use a PA-RISC version of Perl on an Itanium system. This is 197because shared libraries created on an Itanium system cannot be loaded 198while running a PA-RISC executable. 199 200HP Itanium 2 systems are usually refered to with model description 201"HP Integrity". 202 203=head2 Itanium & Itanium 2 204 205HP also ships servers with the 128-bit Itanium processor(s). As of the 206date of this document's last update, the following systems contain 207Itanium or Itanium 2 chips (this is very likely to be out of date): 208 209 BL60p, rx1600, rx1620, rx2600, rx2600hptc, rx2620, rx4610, rx4640, 210 rx5670, rx7620, rx8620, rx9610 211 212To see all about your machine, type 213 214 # model 215 ia64 hp server rx2600 216 # /usr/contrib/bin/machinfo 217 218=head2 Building Dynamic Extensions on HP-UX 219 220HP-UX supports dynamically loadable libraries (shared libraries). 221Shared libraries end with the suffix .sl. On Itanium systems, 222they end with the suffix .so. 223 224Shared libraries created on a platform using a particular PA-RISC 225version are not usable on platforms using an earlier PA-RISC version by 226default. However, this backwards compatibility may be enabled using the 227same +DAportable compiler flag (with the same PA-RISC 1.0 caveat 228mentioned above). 229 230Shared libraries created on an Itanium platform cannot be loaded on 231a PA-RISC platform. Shared libraries created on a PA-RISC platform 232can only be loaded on an Itanium platform if it is a PA-RISC executable 233that is attempting to load the PA-RISC library. A PA-RISC shared 234library cannot be loaded into an Itanium executable nor vice-versa. 235 236To create a shared library, the following steps must be performed: 237 238 1. Compile source modules with +z or +Z flag to create a .o module 239 which contains Position-Independent Code (PIC). The linker will 240 tell you in the next step if +Z was needed. 241 (For gcc, the appropriate flag is -fpic or -fPIC.) 242 243 2. Link the shared library using the -b flag. If the code calls 244 any functions in other system libraries (e.g., libm), it must 245 be included on this line. 246 247(Note that these steps are usually handled automatically by the extension's 248Makefile). 249 250If these dependent libraries are not listed at shared library creation 251time, you will get fatal "Unresolved symbol" errors at run time when the 252library is loaded. 253 254You may create a shared library that refers to another library, which 255may be either an archive library or a shared library. If this second 256library is a shared library, this is called a "dependent library". The 257dependent library's name is recorded in the main shared library, but it 258is not linked into the shared library. Instead, it is loaded when the 259main shared library is loaded. This can cause problems if you build an 260extension on one system and move it to another system where the 261libraries may not be located in the same place as on the first system. 262 263If the referred library is an archive library, then it is treated as a 264simple collection of .o modules (all of which must contain PIC). These 265modules are then linked into the shared library. 266 267Note that it is okay to create a library which contains a dependent 268library that is already linked into perl. 269 270Some extensions, like DB_File and Compress::Zlib use/require prebuilt 271libraries for the perl extensions/modules to work. If these libraries 272are built using the default configuration, it might happen that you 273run into an error like "invalid loader fixup" during load phase. 274HP is aware of this problem. Search the HP-UX cxx-dev forums for 275discussions about the subject. The short answer is that B<everything> 276(all libraries, everything) must be compiled with C<+z> or C<+Z> to be 277PIC (position independent code). (For gcc, that would be 278C<-fpic> or C<-fPIC>). In HP-UX 11.00 or newer the linker 279error message should tell the name of the offending object file. 280 281A more general approach is to intervene manually, as with an example for 282the DB_File module, which requires SleepyCat's libdb.sl: 283 284 # cd .../db-3.2.9/build_unix 285 # vi Makefile 286 ... add +Z to all cflags to create shared objects 287 CFLAGS= -c $(CPPFLAGS) +Z -Ae +O2 +Onolimit \ 288 -I/usr/local/include -I/usr/include/X11R6 289 CXXFLAGS= -c $(CPPFLAGS) +Z -Ae +O2 +Onolimit \ 290 -I/usr/local/include -I/usr/include/X11R6 291 292 # make clean 293 # make 294 # mkdir tmp 295 # cd tmp 296 # ar x ../libdb.a 297 # ld -b -o libdb-3.2.sl *.o 298 # mv libdb-3.2.sl /usr/local/lib 299 # rm *.o 300 # cd /usr/local/lib 301 # rm -f libdb.sl 302 # ln -s libdb-3.2.sl libdb.sl 303 304 # cd .../DB_File-1.76 305 # make distclean 306 # perl Makefile.PL 307 # make 308 # make test 309 # make install 310 311As of db-4.2.x it is no longer needed to do this by hand. Sleepycat 312has changed the configuration process to add +z on HP-UX automatically. 313 314 # cd .../db-4.2.25/build_unix 315 # env CFLAGS=+DA2.0w LDFLAGS=+DA2.0w ../dist/configure 316 317should work to generate 64bit shared libraries for HP-UX 11.00 and 11i. 318 319It is no longer possible to link PA-RISC 1.0 shared libraries (even 320though the command-line flags are still present). 321 322PA-RISC and Itanium object files are not interchangeable. Although 323you may be able to use ar to create an archive library of PA-RISC 324object files on an Itanium system, you cannot link against it using 325an Itanium link editor. 326 327=head2 The HP ANSI C Compiler 328 329When using this compiler to build Perl, you should make sure that the 330flag -Aa is added to the cpprun and cppstdin variables in the config.sh 331file (though see the section on 64-bit perl below). If you are using a 332recent version of the Perl distribution, these flags are set automatically. 333 334=head2 The GNU C Compiler 335 336When you are going to use the GNU C compiler (gcc), and you don't have 337gcc yet, you can either build it yourself from the sources (available 338from e.g. http://www.gnu.ai.mit.edu/software/gcc/releases.html) or fetch 339a prebuilt binary from the HP porting center. There are two places where 340gcc prebuilds can be fetched; the first and best (for HP-UX 11 only) is 341http://h21007.www2.hp.com/dspp/tech/tech_TechSoftwareDetailPage_IDX/1,1703,547,00.html 342the second is http://hpux.cs.utah.edu/hppd/hpux/Gnu/ where you can also 343find the GNU binutils package. (Browse through the list, because there 344are often multiple versions of the same package available). 345 346Above mentioned distributions are depots. H.Merijn Brand has made prebuilt 347gcc binaries available on http://mirrors.develooper.com/hpux/ and/or 348http://www.cmve.net/~merijn/ for HP-UX 10.20, HP-UX 11.00, and HP-UX 11.11 349(HP-UX 11i) in both 32- and 64-bit versions. These are bzipped tar archives 350that also include recent GNU binutils and GNU gdb. Read the instructions 351on that page to rebuild gcc using itself. 352 353On PA-RISC you need a different compiler for 32-bit applications and for 35464-bit applications. On PA-RISC, 32-bit objects and 64-bit objects do 355not mix. Period. There is no different behaviour for HP C-ANSI-C or GNU 356gcc. So if you require your perl binary to use 64-bit libraries, like 357Oracle-64bit, you MUST build a 64-bit perl. 358 359Building a 64-bit capable gcc on PA-RISC from source is possible only when 360you have the HP C-ANSI C compiler or an already working 64-bit binary of 361gcc available. Best performance for perl is achieved with HP's native 362compiler. 363 364=head2 Using Large Files with Perl on HP-UX 365 366Beginning with HP-UX version 10.20, files larger than 2GB (2^31 bytes) 367may be created and manipulated. Three separate methods of doing this 368are available. Of these methods, the best method for Perl is to compile 369using the -Duselargefiles flag to Configure. This causes Perl to be 370compiled using structures and functions in which these are 64 bits wide, 371rather than 32 bits wide. (Note that this will only work with HP's ANSI 372C compiler. If you want to compile Perl using gcc, you will have to get 373a version of the compiler that supports 64-bit operations. See above for 374where to find it.) 375 376There are some drawbacks to this approach. One is that any extension 377which calls any file-manipulating C function will need to be recompiled 378(just follow the usual "perl Makefile.PL; make; make test; make install" 379procedure). 380 381The list of functions that will need to recompiled is: 382creat, fgetpos, fopen, 383freopen, fsetpos, fstat, 384fstatvfs, fstatvfsdev, ftruncate, 385ftw, lockf, lseek, 386lstat, mmap, nftw, 387open, prealloc, stat, 388statvfs, statvfsdev, tmpfile, 389truncate, getrlimit, setrlimit 390 391Another drawback is only valid for Perl versions before 5.6.0. This 392drawback is that the seek and tell functions (both the builtin version 393and POSIX module version) will not perform correctly. 394 395It is strongly recommended that you use this flag when you run 396Configure. If you do not do this, but later answer the question about 397large files when Configure asks you, you may get a configuration that 398cannot be compiled, or that does not function as expected. 399 400=head2 Threaded Perl on HP-UX 401 402It is possible to compile a version of threaded Perl on any version of 403HP-UX before 10.30, but it is strongly suggested that you be running on 404HP-UX 11.00 at least. 405 406To compile Perl with threads, add -Dusethreads to the arguments of 407Configure. Verify that the -D_POSIX_C_SOURCE=199506L compiler flag is 408automatically added to the list of flags. Also make sure that -lpthread 409is listed before -lc in the list of libraries to link Perl with. The 410hints provided for HP-UX during Configure will try very hard to get 411this right for you. 412 413HP-UX versions before 10.30 require a separate installation of a POSIX 414threads library package. Two examples are the HP DCE package, available 415on "HP-UX Hardware Extensions 3.0, Install and Core OS, Release 10.20, 416April 1999 (B3920-13941)" or the Freely available PTH package, available 417on H.Merijn's site (http://mirrors.develooper.com/hpux/). 418 419If you are going to use the HP DCE package, the library used for threading 420is /usr/lib/libcma.sl, but there have been multiple updates of that 421library over time. Perl will build with the first version, but it 422will not pass the test suite. Older Oracle versions might be a compelling 423reason not to update that library, otherwise please find a newer version 424in one of the following patches: PHSS_19739, PHSS_20608, or PHSS_23672 425 426reformatted output: 427 428 d3:/usr/lib 106 > what libcma-*.1 429 libcma-00000.1: 430 HP DCE/9000 1.5 Module: libcma.sl (Export) 431 Date: Apr 29 1996 22:11:24 432 libcma-19739.1: 433 HP DCE/9000 1.5 PHSS_19739-40 Module: libcma.sl (Export) 434 Date: Sep 4 1999 01:59:07 435 libcma-20608.1: 436 HP DCE/9000 1.5 PHSS_20608 Module: libcma.1 (Export) 437 Date: Dec 8 1999 18:41:23 438 libcma-23672.1: 439 HP DCE/9000 1.5 PHSS_23672 Module: libcma.1 (Export) 440 Date: Apr 9 2001 10:01:06 441 d3:/usr/lib 107 > 442 443If you choose for the PTH package, use swinstall to install pth in 444the default location (/opt/pth), and then make symbolic links to the 445libraries from /usr/lib 446 447 # cd /usr/lib 448 # ln -s /opt/pth/lib/libpth* . 449 450For building perl to support Oracle, it needs to be linked with libcl 451and libpthread. So even if your perl is an unthreaded build, these 452libraries might be required. See "Oracle on HP-UX" below. 453 454=head2 64-bit Perl on HP-UX 455 456Beginning with HP-UX 11.00, programs compiled under HP-UX can take 457advantage of the LP64 programming environment (LP64 means Longs and 458Pointers are 64 bits wide), in which scalar variables will be able 459to hold numbers larger than 2^32 with complete precision. Perl has 460proven to be consistent and reliable in 64bit mode since 5.8.1 on 461all HP-UX 11.xx. 462 463As of the date of this document, Perl is fully 64-bit compliant on 464HP-UX 11.00 and up for both cc- and gcc builds. If you are about to 465build a 64-bit perl with GNU gcc, please read the gcc section carefully. 466 467Should a user have the need for compiling Perl in the LP64 environment, 468use the -Duse64bitall flag to Configure. This will force Perl to be 469compiled in a pure LP64 environment (with the +DD64 flag for HP C-ANSI-C, 470with no additional options for GNU gcc 64-bit on PA-RISC, and with 471-mlp64 for GNU gcc on Itanium). 472If you want to compile Perl using gcc, you will have to get a version of 473the compiler that supports 64-bit operations.) 474 475You can also use the -Duse64bitint flag to Configure. Although there 476are some minor differences between compiling Perl with this flag versus 477the -Duse64bitall flag, they should not be noticeable from a Perl user's 478perspective. When configuring -Duse64bitint using a 64bit gcc on a 479pa-risc architecture, -Duse64bitint is silently promoted to -Duse64bitall. 480 481In both cases, it is strongly recommended that you use these flags when 482you run Configure. If you do not use do this, but later answer the 483questions about 64-bit numbers when Configure asks you, you may get a 484configuration that cannot be compiled, or that does not function as 485expected. 486 487=head2 Oracle on HP-UX 488 489Using perl to connect to Oracle databases through DBI and DBD::Oracle 490has caused a lot of people many headaches. Read README.hpux in the 491DBD::Oracle for much more information. The reason to mention it here 492is that Oracle requires a perl built with libcl and libpthread, the 493latter even when perl is build without threads. Building perl using 494all defaults, but still enabling to build DBD::Oracle later on can be 495achieved using 496 497 Configure -A prepend:libswanted='cl pthread ' ... 498 499Do not forget the space before the trailing quote. 500 501Also note that this does not (yet) work with all configurations, 502it is known to fail with 64-bit versions of GCC. 503 504=head2 GDBM and Threads on HP-UX 505 506If you attempt to compile Perl with threads on an 11.X system and also 507link in the GDBM library, then Perl will immediately core dump when it 508starts up. The only workaround at this point is to relink the GDBM 509library under 11.X, then relink it into Perl. 510 511=head2 NFS filesystems and utime(2) on HP-UX 512 513If you are compiling Perl on a remotely-mounted NFS filesystem, the test 514io/fs.t may fail on test #18. This appears to be a bug in HP-UX and no 515fix is currently available. 516 517=head2 perl -P and // and HP-UX 518 519If HP-UX Perl is compiled with flags that will cause problems if the 520-P flag of Perl (preprocess Perl code with the C preprocessor before 521perl sees it) is used. The problem is that C<//>, being a C++-style 522until-end-of-line comment, will disappear along with the remainder 523of the line. This means that common Perl constructs like 524 525 s/foo//; 526 527will turn into illegal code 528 529 s/foo 530 531The workaround is to use some other quoting separator than C<"/">, 532like for example C<"!">: 533 534 s!foo!!; 535 536=head2 HP-UX Kernel Parameters (maxdsiz) for Compiling Perl 537 538By default, HP-UX comes configured with a maximum data segment size of 53964MB. This is too small to correctly compile Perl with the maximum 540optimization levels. You can increase the size of the maxdsiz kernel 541parameter through the use of SAM. 542 543When using the GUI version of SAM, click on the Kernel Configuration 544icon, then the Configurable Parameters icon. Scroll down and select 545the maxdsiz line. From the Actions menu, select the Modify Configurable 546Parameter item. Insert the new formula into the Formula/Value box. 547Then follow the instructions to rebuild your kernel and reboot your 548system. 549 550In general, a value of 256MB (or "256*1024*1024") is sufficient for 551Perl to compile at maximum optimization. 552 553=head1 nss_delete core dump from op/pwent or op/grent 554 555You may get a bus error core dump from the op/pwent or op/grent 556tests. If compiled with -g you will see a stack trace much like 557the following: 558 559 #0 0xc004216c in () from /usr/lib/libc.2 560 #1 0xc00d7550 in __nss_src_state_destr () from /usr/lib/libc.2 561 #2 0xc00d7768 in __nss_src_state_destr () from /usr/lib/libc.2 562 #3 0xc00d78a8 in nss_delete () from /usr/lib/libc.2 563 #4 0xc01126d8 in endpwent () from /usr/lib/libc.2 564 #5 0xd1950 in Perl_pp_epwent () from ./perl 565 #6 0x94d3c in Perl_runops_standard () from ./perl 566 #7 0x23728 in S_run_body () from ./perl 567 #8 0x23428 in perl_run () from ./perl 568 #9 0x2005c in main () from ./perl 569 570The key here is the C<nss_delete> call. One workaround for this 571bug seems to be to create add to the file F</etc/nsswitch.conf> 572(at least) the following lines 573 574 group: files 575 passwd: files 576 577Whether you are using NIS does not matter. Amazingly enough, 578the same bug also affects Solaris. 579 580=head1 AUTHOR 581 582Jeff Okamoto <okamoto@corp.hp.com> 583H.Merijn Brand <h.m.brand@xs4all.nl> 584 585With much assistance regarding shared libraries from Marc Sabatella. 586 587=head1 DATE 588 589Version 0.7.6: 2005-12-20 590 591=cut 592