per...@perl.org
I apologize in advance if this is the wrong place to post this question.
I am attempting to install Perl 5.8.0 on a Solaris 2.7 machine and 'make'
aborts with the following message:
(snip)
rm -f opmini.c
gcc -L/usr/local/lib -o miniperl \
miniperlmain.o opmini.o libperl.a -lsocket -lnsl -ldl -lm -lc
./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
make: [extra.pods] Error 1 (ignored)
./miniperl -Ilib configpm configpm.tmp
sh mv-if-diff configpm.tmp lib/Config.pm
./miniperl -Ilib lib/lib_pm.PL
Constant(undef) unknown: at lib/File/Basename.pm line 289, at end of line
Compilation failed in require at lib/lib_pm.PL line 2.
BEGIN failed--compilation aborted at lib/lib_pm.PL line 2.
make: *** [lib/lib.pm] Error 255
Here is 'myconfig' content:
Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
Platform:
osname=solaris, osvers=2.7, archname=sun4-solaris
uname='sunos daryl 5.7 generic_106541-19 sun4u sparc sunw,ultra-4 '
config_args='-Dprefix=/home/webland/Personal -Dcc=gcc'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-fno-strict-aliasing -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='2.95.3 20010315 (release)',
gccosandvers='solaris2.7'
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='gcc', ldflags =' -L/usr/local/lib '
libpth=/usr/local/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldl -lm -lc
perllibs=-lsocket -lnsl -ldl -lm -lc
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -Wl,-E'
cccdlflags='-fPIC', lddlflags=' -Wl,-E -G -L/usr/local/lib'
I have seen the discussion of a patch for Basename.pm and my Basename.pm
appears to be patched, at least in a similar way.
I have also seen the testimonials that says 5.8.0 installs OK on Solaris 2.7.
I have been able to install 5.8.0 with the same tar file on Solaris 2.8
without problem.
Can anyone advise me what is wrong with my system or what I'm doing wrong?
Much Thanks.
Rob Dallas
Canadian Heritage Information Network
rda...@chin.gc.ca
[snip]
> I have seen the discussion of a patch for Basename.pm and my Basename.pm
> appears to be patched, at least in a similar way.
> I have also seen the testimonials that says 5.8.0 installs OK on Solaris 2.7.
> I have been able to install 5.8.0 with the same tar file on Solaris 2.8
> without problem.
Just to clarify, are you using the Basename.pm file that comes with the
standard Perl 5.8.0 tarfile, or some other version of this file?
--
In England there is a special word which means the last sunshine
of the summer. That word is "spring".
Rob...
Could you try the following from the build directory:
./miniperl -Ilib -MFile::Basename -e ''
and let me know if you get the same error.
Even better, if you do, would it possible for you to produce
a stripped-down minimum version of lib/File/Basename.pm that still
exhibits the error?
Thanks,
Dave.
--
In the 70's we wore flares because we didn't know any better.
What possible excuse does the current generation have?
Hmmm - could you try each of the following in order until you start
gettting error messages again?
./miniperl -Ilib -e 'use File::Basename'
./miniperl -Ilib -e 'use File::Basename qw(&basename &dirname)'
./miniperl -Ilib -e 'use Config; use File::Basename qw(&basename &dirname)'
./miniperl -Ilib lib/lib_pm.PL
make lib/lib.pm
make minitest
make
--
Lady Nancy Astor: If you were my husband, I would flavour your coffee
with poison.
Churchill: Madam - if I were your husband, I would drink it.
Rob....
daryl:~/Personal>cd src/perl-5.8.0
daryl:~/Personal/src/perl-5.8.0>./miniperl -Ilib -e 'use File::Basename'
daryl:~/Personal/src/perl-5.8.0>./miniperl -Ilib -e 'use File::Basename
qw(&base
name &dirname)'
daryl:~/Personal/src/perl-5.8.0>./miniperl -Ilib -e 'use Config; use
File::Basen
ame qw(&basename &dirname)'
daryl:~/Personal/src/perl-5.8.0>./miniperl -Ilib lib/lib_pm.PL
Extracting lib.pm (with variable substitutions)
daryl:~/Personal/src/perl-5.8.0>make lib/lib.pm
make: `lib/lib.pm' is up to date.
daryl:~/Personal/src/perl-5.8.0>make minitest
cp ext/re/re.pm ext/re/re.tmp && sh mv-if-diff ext/re/re.tmp lib/re.pm
You may see some irrelevant test failures if you have been unable
to build lib/Config.pm or lib/lib.pm.
cd t && (rm -f perl; /usr/bin/ln -s ../miniperl perl) \
&& ./perl TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t
</dev/tty
t/base/cond..........ok
t/base/if............ok
t/base/lex...........ok
t/base/num...........ok
t/base/pat...........ok
t/base/rs............ok
t/base/term..........ok
t/comp/bproto........ok
t/comp/cmdopt........ok
t/comp/colon.........ok
t/comp/cpp...........ok
t/comp/decl..........ok
t/comp/hints.........ok
t/comp/multiline.....ok
t/comp/package.......ok
t/comp/proto.........ok
t/comp/redef.........ok
t/comp/require.......ok
t/comp/script........ok
t/comp/term..........ok
t/comp/use...........ok
t/cmd/elsif..........ok
t/cmd/for............ok
t/cmd/mod............ok
t/cmd/subval.........ok
t/cmd/switch.........ok
t/cmd/while..........ok
t/run/exit...........ok
t/run/fresh_perl.....ok
t/run/noswitch.......ok
t/run/runenv.........ok
t/run/switchF........ok
t/run/switchPx.......ok
t/run/switcha........ok
t/run/switches.......ok
t/run/switchn........ok
t/run/switchp........ok
t/run/switcht........ok
t/run/switchx........ok
t/io/argv............ok
t/io/binmode.........ok
t/io/crlf............ok
t/io/dup.............ok
t/io/fflush..........ok
t/io/fs..............ok
t/io/inplace.........ok
t/io/iprefix.........ok
t/io/nargv...........ok
t/io/open............Can't locate Errno.pm in @INC (@INC contains: ../lib)
at io
/open.t line 234.
BEGIN failed--compilation aborted at io/open.t line 234.
FAILED at test 0
t/io/openpid.........ok
t/io/pipe............ok
t/io/print...........ok
t/io/read............ok
t/io/tell............ok
t/io/utf8............ok
t/op/64bitint........skipping test on this platform
t/op/alarm...........ok
t/op/anonsub.........ok
t/op/append..........ok
t/op/args............ok
t/op/arith...........ok
t/op/array...........ok
t/op/assignwarn......ok
t/op/attrs...........ok
t/op/auto............ok
t/op/avhv............ok
t/op/bless...........ok
t/op/bop.............ok
t/op/caller..........ok
t/op/chars...........ok
t/op/chdir...........ok
t/op/chop............ok
t/op/closure.........ok
t/op/cmp.............ok
t/op/concat..........ok
t/op/cond............ok
t/op/context.........ok
t/op/crypt...........ok
t/op/defins..........ok
t/op/delete..........ok
t/op/die.............ok
t/op/die_exit........ok
t/op/do..............ok
t/op/each............ok
t/op/eval............ok
t/op/exec............ok
t/op/exists_sub......ok
t/op/exp.............ok
t/op/fh..............ok
t/op/filetest........ok
t/op/flip............ok
t/op/fork............ok
t/op/glob............ok
t/op/gmagic..........ok
t/op/goto............ok
t/op/goto_xs.........skipping test on this platform
t/op/grent...........ok
t/op/grep............ok
t/op/groups..........ok
t/op/gv..............ok
t/op/hashassign......ok
t/op/hashwarn........ok
t/op/inc.............ok
t/op/inccode.........ok
t/op/index...........ok
t/op/int.............ok
t/op/join............ok
t/op/lc..............ok
t/op/length..........ok
t/op/lex_assign......ok
t/op/lfs.............skipping test on this platform
t/op/list............ok
t/op/local...........ok
t/op/loopctl.........ok
t/op/lop.............ok
t/op/magic...........Can't locate Errno.pm in @INC (@INC contains: ../lib)
at op
/magic.t line 299.
BEGIN failed--compilation aborted.
FAILED at test 38
t/op/method..........ok
t/op/mkdir...........ok
t/op/my..............ok
t/op/my_stash........ok
t/op/nothr5005.......ok
t/op/numconvert......ok
t/op/oct.............ok
t/op/or..............ok
t/op/ord.............ok
t/op/override........ok
t/op/pack............ok
t/op/pat.............ok
t/op/pos.............ok
t/op/pow.............ok
t/op/push............ok
t/op/pwent...........ok
t/op/qq..............ok
t/op/quotemeta.......ok
t/op/rand............ok
t/op/range...........ok
t/op/read............ok
t/op/readdir.........ok
t/op/recurse.........ok
t/op/ref.............ok
t/op/regexp..........ok
t/op/regexp_noamp....ok
t/op/regmesg.........ok
t/op/repeat..........ok
t/op/reverse.........ok
t/op/runlevel........ok
t/op/sleep...........ok
t/op/sort............ok
t/op/splice..........ok
t/op/split...........ok
t/op/sprintf.........ok
t/op/srand...........ok
t/op/stat............ok
t/op/study...........ok
t/op/sub_lval........ok
t/op/subst...........ok
t/op/subst_amp.......ok
t/op/subst_wamp......ok
t/op/substr..........ok
t/op/sysio...........ok
t/op/taint...........ok
t/op/tie.............ok
t/op/tiearray........ok
t/op/tiehandle.......ok
t/op/time............ok
t/op/tr..............ok
t/op/undef...........ok
t/op/universal.......ok
t/op/unshift.........ok
t/op/utf8decode......ok
t/op/utfhash.........ok
t/op/vec.............ok
t/op/ver.............ok
t/op/wantarray.......ok
t/op/write...........ok
t/uni/fold...........ok
t/uni/lower..........ok
t/uni/sprintf........ok
t/uni/title..........ok
t/uni/upper..........ok
Failed 2 test scripts out of 176, 98.86% okay.
### Since not all tests were successful, you may want to run some of
### them individually and examine any diagnostic messages they produce.
### See the INSTALL document's section on "make test".
### You have a good chance to get more information by running
### ./perl harness
### in the 't' directory since most (>=80%) of the tests succeeded.
### You may have to set your dynamic library search path,
### LD_LIBRARY_PATH, to point to the build directory:
### setenv LD_LIBRARY_PATH `pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
### LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd t;
./pe
rl harness
### export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
### for csh-style shells, like tcsh; or for traditional/modern
### Bourne-style shells, like bash, ksh, and zsh, respectively.
u=1.84 s=0.3 cu=35.4 cs=8.48 scripts=176 tests=26621
make: [minitest] Error 1 (ignored)
daryl:~/Personal/src/perl-5.8.0>make
AutoSplitting perl library
./miniperl -Ilib -e 'use AutoSplit; \
autosplit_lib_modules(@ARGV)' lib/*.pm
./miniperl -Ilib -e 'use AutoSplit; \
autosplit_lib_modules(@ARGV)' lib/*/*.pm
make lib/re.pm
make[1]: Entering directory `/home/webland/Personal/src/perl-5.8.0'
make[1]: `lib/re.pm' is up to date.
<snip>
Making Errno (nonxs)
Writing Makefile for Errno
make[1]: Entering directory `/home/webland/Personal/src/perl-5.8.0/ext/Errno'
make[1]: Leaving directory `/home/webland/Personal/src/perl-5.8.0/ext/Errno'
make[1]: Entering directory `/home/webland/Personal/src/perl-5.8.0/ext/Errno'
../../miniperl "-I../../lib" "-I../../lib" "-I../../lib" "-I../../lib"
Errno_pm.
PL Errno.pm
cp Errno.pm ../../lib/Errno.pm
make[1]: Leaving directory `/home/webland/Personal/src/perl-5.8.0/ext/Errno'
make: [extras.make] Error 1 (ignored)
Everything is up to date. Type 'make test' to run test suite.
Well, I don't know why, but the problem seems to have gone away.
A final 'make test; make install' should now work.
> daryl:~/Personal>cd src/perl-5.8.0
> daryl:~/Personal/src/perl-5.8.0>./miniperl -Ilib -e 'use File::Basename'
> daryl:~/Personal/src/perl-5.8.0>./miniperl -Ilib -e 'use File::Basename
> qw(&base
> name &dirname)'
> daryl:~/Personal/src/perl-5.8.0>./miniperl -Ilib -e 'use Config; use
> File::Basen
> ame qw(&basename &dirname)'
> daryl:~/Personal/src/perl-5.8.0>./miniperl -Ilib lib/lib_pm.PL
> Extracting lib.pm (with variable substitutions)
[snip]
--
To collect all the latest movies, simply place an unprotected ftp server
on the Internet, and wait for the disk to fill....