I found the same problem when I tried to build Perl 5.8.1 with
gcc-3.3.2 (full 64 bit binary).
Putting the core into gdb it shows the break whithin the first 3 steps
My setup was: Summary of my perl5 (revision 5.0 version 8 subversion 1) configuratio
+n:
Platform:
osname=solaris, osvers=2.8, archname=sun4-solaris-64
uname='sunos daddel 5.8 generic_108528-16 sun4u sparc sunw,ultra-8
+0 '
config_args='-Dcc=gcc -m64 -Dprefix=/test/tools/sparcv9/perl -des'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultipl
+icity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=define uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc -m64', ccflags ='-fno-strict-aliasing -I/usr/local/include
+ -mcpu=v9 -m64 -Wa,-xarch=v9 -D_LAR
GEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='3.3.2', gccosandvers='solaris2'
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1
+6
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
+ lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='gcc -m64', 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=/usr/lib/sparcv9/libc.so, so=so, useshrplib=false, libperl=li
+bperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -z ign
+ore -z lazyload -z combreloc'
cccdlflags='-fPIC', lddlflags=' -G -z ignore -z lazyload -z combr
+eloc -L/usr/local/lib'
I altert a lot during several compiles (other Libpathes an options) -- no relief at all
But exactly the same setup works with Perl-5.8.0; no illegal instruction during test!
Another hint: The miniperl of 5.8.1 works, the final perl not
and it was also impossible to build a shared library. In that try even the miniperl died by SIGSEGV.
---------------------
Then I tried 5.8.1 with SUN's Compiler and that works fine, Here my setup that works:
Summary of my perl5 (revision 5.0 version 8 subversion 1) configuration: Platform:
osname=solaris, osvers=2.8, archname=sun4-solaris-64-ld
uname='sunos daddel2 5.8 generic_108528-14 sun4u sparc sunw,ultra-
+5_10 '
config_args='-Dcc=cc -xarch=v9 -Doptimize=-xO4 -Duse64bitall -Duse
+morebits -Dprefix=/software/tools/sparcv9/perl -des
'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultipl
+icity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=define uselongdouble=define
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc -xarch=v9', ccflags ='-xarch=v9 -I/usr/local/include -D_LAR
+GEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-xO4',
cppflags='-xarch=v9 -I/usr/local/include'
ccversion='Sun WorkShop 6 update 2 C 5.3 Patch 111679-05 2002/02/0
+7', gccversion='', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1
+6
ivtype='long', ivsize=8, nvtype='long double', nvsize=16, Off_t='o
+ff_t', lseeksize=8
alignbytes=16, prototype=define
Linker and Libraries:
ld='cc -xarch=v9', ldflags =' -xarch=v9 -L/usr/lib/sparcv9 -L/usr/
+ccs/lib/sparcv9 -L/opt/SUNWspro/WS6U2/lib/v9 -L/usr
/local/lib '
libpth=/usr/lib/sparcv9 /usr/ccs/lib/sparcv9 /opt/SUNWspro/WS6U2/l
+ib/v9 /usr/local/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldl -lm -lc -lsunmath
perllibs=-lsocket -lnsl -ldl -lm -lc -lsunmath
libc=/usr/lib/sparcv9/libc.so, so=so, useshrplib=false, libperl=li
+bperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -z ign
+ore -z lazyload -z combreloc'
cccdlflags='-KPIC', lddlflags=' -G -xarch=v9 -G -z ignore -z lazy
+load -z combreloc -L/usr/lib/sparcv9 -L/usr/ccs/lib
/sparcv9 -L/opt/SUNWspro/WS6U2/lib/v9 -L/usr/local/lib'
I've no idea, what the reason is but I suspect an problem with gcc and perl 5.8.1, because even a 32 bit compiled version of perl by using gcc didn't do.
My comment: Try gcc and 5.8.0 or take SUN's Compiler and 5.8.1 We might have a bug in 5.8.1
Regards Knut |