Subject: | On HP-UX 11.31 IA64, Digest::SHA builds, install fails at unlink |
Date: | Tue, 29 Mar 2011 17:34:26 +0300 |
To: | "bug-Digest-SHA [...] rt.cpan.org" <bug-Digest-SHA [...] rt.cpan.org> |
From: | Niskanen Mikko <mikko.niskanen [...] cboss.fi> |
Aye,
This "bug" is not specific to Digest::SHA, please feel free to reject/forward
to appropriate location.
Didn't find this covered in CPAN, e.g. README.hpux, which is kind of suprising.
With HP-UX, unlink()ing a busy text file is not allowed, it produces a EXTBSY:
[ETXTBSY] The entry to be unlinked is the last link to a
pure procedure (shared text) file that is being
executed.
And perl uses that:
ERROR: Cannot unlink '/opt/perl_32/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi/auto/Digest/SHA/SHA.so': Text file busy
One relevant discussion thread in ITRC:
http://forums13.itrc.hp.com/service/forums/questionanswer.do?admit=109447627+1301408256494+28353475&threadId=1325360
On HP-UX, this should be done e.g.:
cd /path/to/site_perl/.../Digest/SHA
mv SHA.so SHA.so.old
cp /tmp/SHA.so SHA.so
Note that the mv operation must be within the same filesystem, otherwise mv is effectively a cp operation.
Another way to do this to minimize time the library is missing:
cd /path/to/site_perl/.../Digest/SHA
cp /tmp/SHA.so SHA.so.new
ln -f SHA.so SHA.so.old
ln -f SHA.so.new SHA.so
Facts:
- HP-UX 11.31 on IA64 architecture, September 2010 Full OE update
(i.e. latest available, March 2011 not available yet)
- Current installed Storable-2.15
- Perl version:
# perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=hpux, osvers=11.23, archname=IA64.ARCHREV_0-thread-multi
uname='hp-ux buzz b.11.23 u ia64 3101164512 unlimited-user license '
config_args='-Dmksymlinks -ders -Dcc=cc -Dusethreads -Duseithreads -Ud_sigsetjmp -Uinstallusrbinperl -Ulocincpth= -Uloclibpth= -Dsh=/usr/bin/sh -Dd_attribut=undef -Dd_attribute_warn_unused_result=undef -Dd_u32align=define -Aprepend:libswanted=cl -Dvendorprefix=/opt/perl_32 -Accflags=+DSitanium2 -Doptimize=-fast +Ofltacc=strict -Accflags=+Z -Accflags=-DUSE_SITECUSTOMIZE -Duselargefiles -Accflags=-DNO_HASH_SEED -Dprefix=/opt/perl_32 -Dinc_version_list=5.8.7/$archname 5.8.7 5.8.6/$archname 5.8.6 5.8.4/$archname 5.8.4 5.8.3/$archname 5.8.3 5.8.2/$archname 5.8.2 5.8.1/$archname 5.8.1 5.8.0/$archname 5.8.0 -Dsed=/usr/bin/sed -Duseshrplib -Dconfig_heavy=Config_dynamic.pl'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags =' -D_POSIX_C_SOURCE=199506L -D_REENTRANT -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DSitanium2 +Z -DUSE_SITECUSTOMIZE -DNO_HASH_SEED -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ',
optimize='-fast +Ofltacc=strict',
cppflags='-Aa -D__STDC_EXT__ -D_HPUX_SOURCE -D_POSIX_C_SOURCE=199506L -D_REENTRANT -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DSitanium2 +Z -DUSE_SITECUSTOMIZE -DNO_HASH_SEED'
ccversion='', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='/usr/bin/ld', ldflags =' -L/usr/lib/hpux32'
libpth=/usr/lib/hpux32 /lib /usr/lib /usr/ccs/lib /usr/local/lib
libs=-lcl -lnsl -lnm -lndbm -ldl -ldld -lm -lsec -lpthread -lc
perllibs=-lcl -lnsl -lnm -ldl -ldld -lm -lsec -lpthread -lc
libc=/usr/lib/hpux32/libc.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_hpux.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
cccdlflags='+Z', lddlflags='-b +vnocompatwarnings -L/usr/lib/hpux32'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES
USE_PERLIO USE_REENTRANT_API USE_SITECUSTOMIZE
Built under hpux
Compiled at Nov 28 2008 11:52:02
@INC:
/opt/perl_32/lib/5.8.8/IA64.ARCHREV_0-thread-multi
/opt/perl_32/lib/5.8.8
/opt/perl_32/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi
/opt/perl_32/lib/site_perl/5.8.8
/opt/perl_32/lib/site_perl
/opt/perl_32/lib/vendor_perl/5.8.8/IA64.ARCHREV_0-thread-multi
/opt/perl_32/lib/vendor_perl/5.8.8
/opt/perl_32/lib/vendor_perl
.
cpan[2]> upgrade Digest::SHA
Package namespace installed latest in CPAN file
Digest::SHA 5.50 5.61 MSHELOR/Digest-SHA-5.61.tar.gz
Running install for module 'Digest::SHA'
Running make for M/MS/MSHELOR/Digest-SHA-5.61.tar.gz
Fetching with LWP:
ftp://ftp.funet.fi/pub/languages/perl/CPAN/authors/id/M/MS/MSHELOR/Digest-SHA-5.61.tar.gz
Fetching with LWP:
ftp://ftp.funet.fi/pub/languages/perl/CPAN/authors/id/M/MS/MSHELOR/CHECKSUMS
Checksum for /data3/sys/other/cpan/sources/authors/id/M/MS/MSHELOR/Digest-SHA-5.61.tar.gz ok
x Digest-SHA-5.61/Changes, 17195 bytes, 34 tape blocks
x Digest-SHA-5.61/README, 1143 bytes, 3 tape blocks
x Digest-SHA-5.61/typemap, 41 bytes, 1 tape blocks
x Digest-SHA-5.61/META.yml, 362 bytes, 1 tape blocks
x Digest-SHA-5.61/t/podcover.t, 700 bytes, 2 tape blocks
x Digest-SHA-5.61/t/hmacsha.t, 2097 bytes, 5 tape blocks
x Digest-SHA-5.61/t/sha224.t, 812 bytes, 2 tape blocks
x Digest-SHA-5.61/t/nistbyte.t, 1732 bytes, 4 tape blocks
x Digest-SHA-5.61/t/rfc2202.t, 1198 bytes, 3 tape blocks
x Digest-SHA-5.61/t/gglong.t, 4027 bytes, 8 tape blocks
x Digest-SHA-5.61/t/pod.t, 304 bytes, 1 tape blocks
x Digest-SHA-5.61/t/methods.t, 2531 bytes, 5 tape blocks
x Digest-SHA-5.61/t/sha512.t, 1177 bytes, 3 tape blocks
x Digest-SHA-5.61/t/dumpload.t, 3575 bytes, 7 tape blocks
x Digest-SHA-5.61/t/sha256.t, 836 bytes, 2 tape blocks
x Digest-SHA-5.61/t/gg.t, 2398 bytes, 5 tape blocks
x Digest-SHA-5.61/t/nistbit.t, 1582 bytes, 4 tape blocks
x Digest-SHA-5.61/t/allfcns.t, 687 bytes, 2 tape blocks
x Digest-SHA-5.61/t/bitbuf.t, 1489 bytes, 3 tape blocks
x Digest-SHA-5.61/t/sha384.t, 1081 bytes, 3 tape blocks
x Digest-SHA-5.61/t/ireland.t, 1391 bytes, 3 tape blocks
x Digest-SHA-5.61/t/fips198.t, 906 bytes, 2 tape blocks
x Digest-SHA-5.61/t/fips180-4.t, 1242 bytes, 3 tape blocks
x Digest-SHA-5.61/t/sha1.t, 760 bytes, 2 tape blocks
x Digest-SHA-5.61/t/woodbury.t, 4982 bytes, 10 tape blocks
x Digest-SHA-5.61/t/base64.t, 1012 bytes, 2 tape blocks
x Digest-SHA-5.61/MANIFEST, 503 bytes, 1 tape blocks
x Digest-SHA-5.61/src/hmac.h, 1961 bytes, 4 tape blocks
x Digest-SHA-5.61/src/sha.c, 18869 bytes, 37 tape blocks
x Digest-SHA-5.61/src/sha.h, 6746 bytes, 14 tape blocks
x Digest-SHA-5.61/src/shaxtra.c, 1676 bytes, 4 tape blocks
x Digest-SHA-5.61/src/sha64bit.c, 4599 bytes, 9 tape blocks
x Digest-SHA-5.61/src/hmacxtra.c, 1879 bytes, 4 tape blocks
x Digest-SHA-5.61/src/sha64bit.h, 473 bytes, 1 tape blocks
x Digest-SHA-5.61/src/hmac.c, 2277 bytes, 5 tape blocks
x Digest-SHA-5.61/examples/dups, 1249 bytes, 3 tape blocks
x Digest-SHA-5.61/SHA.xs, 4326 bytes, 9 tape blocks
x Digest-SHA-5.61/shasum, 7891 bytes, 16 tape blocks
x Digest-SHA-5.61/Makefile.PL, 993 bytes, 2 tape blocks
x Digest-SHA-5.61/lib/Digest/SHA.pm, 18911 bytes, 37 tape blocks
CPAN.pm: Going to build M/MS/MSHELOR/Digest-SHA-5.61.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for Digest::SHA
cp lib/Digest/SHA.pm blib/lib/Digest/SHA.pm
/opt/perl_32/bin/perl /opt/perl_32/lib/5.8.8/ExtUtils/xsubpp -typemap /opt/perl_32/lib/5.8.8/ExtUtils/typemap -typemap typemap SHA.xs > SHA.xsc && mv SHA.xsc SHA.c
cc -c -I. -D_POSIX_C_SOURCE=199506L -D_REENTRANT -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DSitanium2 +Z -DUSE_SITECUSTOMIZE -DNO_HASH_SEED -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fast +Ofltacc=strict -DVERSION=\"5.61\" -DXS_VERSION=\"5.61\" +Z "-I/opt/perl_32/lib/5.8.8/IA64.ARCHREV_0-thread-multi/CORE" -DSHA_PERL_MODULE SHA.c
"SHA.c", line 225: warning #2111-D: statement is unreachable
PUTBACK;
^
"SHA.c", line 269: warning #2111-D: statement is unreachable
PUTBACK;
^
"SHA.c", line 295: warning #2111-D: statement is unreachable
PUTBACK;
^
"SHA.c", line 324: warning #2111-D: statement is unreachable
PUTBACK;
^
"SHA.c", line 361: warning #2111-D: statement is unreachable
PUTBACK;
^
Running Mkbootstrap for Digest::SHA ()
chmod 644 SHA.bs
rm -f blib/arch/auto/Digest/SHA/SHA.so
/usr/bin/ld -b +vnocompatwarnings -L/usr/lib/hpux32 SHA.o -o blib/arch/auto/Digest/SHA/SHA.so \
\
chmod 755 blib/arch/auto/Digest/SHA/SHA.so
cp SHA.bs blib/arch/auto/Digest/SHA/SHA.bs
chmod 644 blib/arch/auto/Digest/SHA/SHA.bs
cp shasum blib/script/shasum
/opt/perl_32/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/shasum
Manifying blib/man1/shasum.1
Manifying blib/man3/Digest::SHA.3
MSHELOR/Digest-SHA-5.61.tar.gz
make -- OK
Running make test
rm -f blib/arch/auto/Digest/SHA/SHA.so
/usr/bin/ld -b +vnocompatwarnings -L/usr/lib/hpux32 SHA.o -o blib/arch/auto/Digest/SHA/SHA.so \
\
chmod 755 blib/arch/auto/Digest/SHA/SHA.so
cp SHA.bs blib/arch/auto/Digest/SHA/SHA.bs
chmod 644 blib/arch/auto/Digest/SHA/SHA.bs
PERL_DL_NONLAZY=1 /opt/perl_32/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/allfcns.t .... ok
t/base64.t ..... ok
t/bitbuf.t ..... ok
t/dumpload.t ... ok
t/fips180-4.t .. ok
t/fips198.t .... ok
t/gg.t ......... ok
t/gglong.t ..... ok
t/hmacsha.t .... ok
t/ireland.t .... ok
t/methods.t .... ok
t/nistbit.t .... ok
t/nistbyte.t ... ok
t/pod.t ........ ok
t/podcover.t ... ok
t/rfc2202.t .... ok
t/sha1.t ....... ok
t/sha224.t ..... ok
t/sha256.t ..... ok
t/sha384.t ..... ok
t/sha512.t ..... ok
t/woodbury.t ... ok
All tests successful.
Files=22, Tests=127, 1 wallclock secs ( 0.17 usr 0.13 sys + 1.00 cusr 0.35 csys = 1.65 CPU)
Result: PASS
MSHELOR/Digest-SHA-5.61.tar.gz
make test -- OK
Running make install
Prepending /data3/sys/other/cpan/build/Digest-SHA-5.61-6vnOWX/blib/arch /data3/sys/other/cpan/build/Digest-SHA-5.61-6vnOWX/blib/lib to PERL5LIB for 'install'
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Cannot unlink '/opt/perl_32/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi/auto/Digest/SHA/SHA.so': Text file busy
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1
*** Error exit code 26
Stop.
MSHELOR/Digest-SHA-5.61.tar.gz
make install -- NOT OK
Failed during this command:
MSHELOR/Digest-SHA-5.61.tar.gz : install NO
br,
-MNi
--
Mikko Niskanen, Support Engineer
Tel. +358 40 572 9902
CBOSS Oy, P.O. Box 300, FI-00381 HELSINKI
http://www.cbossgroup.com<http://www.cbossgroup.com/>
Message body is not shown because it is too large.