Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Help building 5.8 on Solaris

by mhearse (Chaplain)
on Nov 04, 2003 at 15:46 UTC ( [id://304454]=perlquestion: print w/replies, xml ) Need Help??

mhearse has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to build 5.8 on my sun box. I can't seem to install modules unless I build perl with gcc. I keep getting these errors during make test. Any advise?
make[1]: Entering directory `/export/home/mhearse/perl-5.8.1/ext/threa +ds/shared' make[1]: Leaving directory `/export/home/mhearse/perl-5.8.1/ext/thread +s/shared' PERL=./perl make _test_prep make[1]: Entering directory `/export/home/mhearse/perl-5.8.1' cd t && (rm -f ./perl; /usr/bin/ln -s .././perl ./perl) make[1]: Leaving directory `/export/home/mhearse/perl-5.8.1' PERL=./perl make _test make[1]: Entering directory `/export/home/mhearse/perl-5.8.1' if (true </dev/tty) >/dev/null 2>&1; then \ make TEST_ARGS= TESTFILE=TEST _test_tty ; \ else \ make TEST_ARGS= TESTFILE=TEST _test_notty ; \ fi make[2]: Entering directory `/export/home/mhearse/perl-5.8.1' cd t && ./perl TEST </dev/tty Illegal Instruction - core dumped make[2]: *** [_test_tty] Error 132 make[2]: Leaving directory `/export/home/mhearse/perl-5.8.1' make[1]: *** [_test] Error 2 make[1]: Leaving directory `/export/home/mhearse/perl-5.8.1' make: *** [test] Error 2 lightnin#

Replies are listed 'Best First'.
Re: Help building 5.8 on Solaris
by sunadmn (Curate) on Nov 04, 2003 at 18:09 UTC
    This is pretty easy as I had the same issue on my sun boxen, when you attempt to build perl it will look for a C compiler and often fails without having GCC installed. There seems to be some sort of bug in solaris 8 on the sparc platform (64 bit Full OEM install), I have also ran across this in 9. What system are you building on SunOS or Sun4u? Also on a side note go out to cpan and grab perl again and check the MD5 checksum. I had another issue like this and it was a bad binary get of perl.
Re: Help building 5.8 on Solaris
by ptkdb (Monk) on Nov 04, 2003 at 18:18 UTC
    Alot more background is needed here.

  • What configuration settings did you apply here?
  • You say 'unless I use gcc', but does that imply that if you use, presumably, Sun's native compiler, or some other vendors compiler you get the error?
  • The error is 'Illegal Instruction' which is sort of a catastrophic error in a build. I presume that this non-gcc compiler was in use? What are you using for CFLAGS?
  • Does your compiler have all of its patches up to date? If you haven't checked for patches since installing it, do so NOW, before you try again.



    <gripe> Does anyone find that some people when asking for help have the annoying habit of giving the absolute minimum ammount of information that they can get away with?</gripe done=fornow>

Re: Help building 5.8 on Solaris
by Anonymous Monk on Nov 05, 2003 at 14:26 UTC
    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
      I used 5.8.0 like you suggested. Worked great on my Solaris 9 box. I never tried Sun's compiler, as I think they want money for that. Thanks again.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://304454]
Approved by gjb
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2024-04-19 02:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found