[geeks] Perl-5.10 on Solaris 10
Phil Stracchino
alaric at metrocast.net
Fri Apr 24 13:33:34 CDT 2009
Has anyone managed to successfully build Perl 5.10 with largefile and
64-bit support on Solaris 10 x86?
I have a correctly configured, tested and verified locally-bootstrapped
gcc-4.3.3 compiled for i686-pc-solaris2.10, with the correct -mnocona
microarchitecture optimization for Irwindale P4 Xeons. I've
successfully built coreutils and a number of other packages with it, but
when I try to build Perl-5.10, the build successfully compiles and links
miniperl, successfully runs miniperl once, and then dumps core when it
tried to build the Perl Config.pm. The error is a FLTBOUND, invalid
address (out of bounds).
This is the sum of the useful fault trace info I have from the build
failure:
`sh cflags "optimize='-O'" opmini.o` -fPIC -DPERL_EXTERNAL_GLOB opmini.c
CCCMD = gcc -DPERL_CORE -c -D_REENTRANT -fno-strict-aliasing
-pipe -I/usr/local/include -I/usr/sfw/include -I/opt/sfw/include -m64
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV
-mtune=nocona -O -Wall -W -Wextra -Wdeclaration-after-statement
-Wendif-labels -Wc++-compat
LD_LIBRARY_PATH=/netstore/src/perl-5.10.0 gcc -m64
-L/usr/local/lib/amd64 -L/usr/local/lib -L/usr/sfw/lib/amd64
-L/usr/sfw/lib -L/opt/sfw/lib/amd64 -L/opt/sfw/lib -o miniperl \
`echo gv.o toke.o perly.o op.o pad.o regcomp.o dump.o
util.o mg.o reentr.o mro.o hv.o av.o perl.o run.o pp_hot.o sv.o pp.o
scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o
universal.o xsutils.o globals.o perlio.o perlapi.o numeric.o mathoms.o
locale.o pp_pack.o pp_sort.o | sed 's/ op.o / /'` \
miniperlmain.o opmini.o -lsocket -lnsl -ldl -lm -lpthread -lc
LD_LIBRARY_PATH=/netstore/src/perl-5.10.0 ./miniperl -w -Ilib
-MExporter -e '<?>' || make minitest
LD_LIBRARY_PATH=/netstore/src/perl-5.10.0 ./miniperl -Ilib configpm
Segmentation Fault - core dumped
make: *** [lib/Config.pod] Error 139
A truss run on that last command:
babylon4:root:/netstore/src/perl-5.10.0:59 #
LD_LIBRARY_PATH=/netstore/src/perl-5.10.0 truss -f ./miniperl -Ilib configpm
[...]
read(3, " # ! . / m i n i p e r l".., 4096) = 4096
stat("lib/strict.pmc", 0xFFFFFD7FFFDFD710) Err#2 ENOENT
stat("lib/strict.pm", 0xFFFFFD7FFFDFD670) = 0
open("lib/strict.pm", O_RDONLY) = 4
ioctl(4, TCGETA, 0xFFFFFD7FFFDFD430) Err#25 ENOTTY
lseek(4, 0, SEEK_CUR) = 0
brk(0x00757EC0) = 0
brk(0x0075BEC0) = 0
read(4, " p a c k a g e s t r i".., 4096) = 3716
brk(0x0075BEC0) = 0
brk(0x0075FEC0) = 0
brk(0x0075FEC0) = 0
brk(0x00763EC0) = 0
lseek(4, 878, SEEK_SET) = 878
lseek(4, 0, SEEK_CUR) = 878
close(4) = 0
Incurred fault #6, FLTBOUNDS %pc = 0x004C2F24
siginfo: SIGSEGV SEGV_MAPERR addr=0x004C2F24
Received signal #11, SIGSEGV [default]
siginfo: SIGSEGV SEGV_MAPERR addr=0x004C2F24
The executable type of miniperl is correct:
babylon4:root:/netstore/src/perl-5.10.0:59 # file miniperl
miniperl: ELF 64-bit LSB executable AMD64 Version 1, dynamically linked,
not stripped, no debugging information available
Anyone run into this before?
--
Phil Stracchino, CDK#2 DoD#299792458 ICBM: 43.5607, -71.355
alaric at caerllewys.net alaric at metrocast.net phil at co.ordinate.org
Renaissance Man, Unix ronin, Perl hacker, Free Stater
It's not the years, it's the mileage.
More information about the geeks
mailing list