Sorry but the information I gave about the make test problem was incorrect. The symbol that it is looking for is nanosleep not nanod. I can't find nanod on my system at all - or in the source for Time::HiRes. That's odd. Not surprising that it failed to find nanod - but odd that it thought it should.
So I'm still trying to find a way to fix this and get Perl installed. ld.so.1: perl: fatal: relocation error: file ../lib/auto/Time/HiRes/HiRes.so: symbol nanosleep: referenced symbol not found Killed -----Original Message----- From: Jonathan Leffler [mailto:[EMAIL PROTECTED] Sent: Thursday, March 20, 2008 9:54 PM To: Vachon, Frederick P (Fred) A5IT Cc: DBI Users Mailing List Subject: Re: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6 Here's another 'perl -V' - 5.8.8 on Solaris 10 with GCC 3.4.6 - justifying my other email saying that an update to GCC was not crucial. Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=solaris, osvers=2.10, archname=sun4-solaris-64 uname='sunos black 5.10 generic_120011-14 sun4u sparc sunw,ultra-4 solaris ' config_args='' 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=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='/usr/gcc/v3.4.6/bin/gcc -m64 -mcpu=v9', ccflags ='-fno-strict-aliasing -pipe -Wdeclaration-a fter-statement -mcpu=v9 -m64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV', optimize='-O', cppflags='-fno-strict-aliasing -pipe -Wdeclaration-after-statement' ccversion='', gccversion='3.4.6', gccosandvers='solaris2.10' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='/usr/gcc/v3.4.6/bin/gcc -m64 -mcpu=v9', ldflags =' -m64 ' libpth=/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=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags='-fPIC', lddlflags=' -G -m64' Characteristics of this binary (from libperl): Compile-time options: PERL_MALLOC_WRAP PERL_USE_SAFE_PUTENV USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO Built under solaris Compiled at Mar 20 2008 11:38:45 @INC: lib /usr/perl/v5.8.8-gcc-3.4.6/lib/5.8.8/sun4-solaris-64 /usr/perl/v5.8.8-gcc-3.4.6/lib/5.8.8 /usr/perl/v5.8.8-gcc-3.4.6/lib/site_perl/5.8.8/sun4-solaris-64 /usr/perl/v5.8.8-gcc-3.4.6/lib/site_perl/5.8.8 /usr/perl/v5.8.8-gcc-3.4.6/lib/site_perl . On Thu, Mar 20, 2008 at 12:31 PM, Vachon, Frederick P (Fred) A5IT <[EMAIL PROTECTED]> wrote: Thank you very much for your help! Having the output from a successful build I was able to see what was wrong or missing in my config.sh file. I needed to include the sparcv9 64 bit directories - mainly /usr/lib/sparcv9 and /usr/ccs/lib/sparcv9 to config.sh. The defaults from Configure don't work. I always do a manual configure - though I usually spend a lot of time just accepting the defaults. Tip: if you plan to have Perl installed in /usr/perl/v5.x.y, create both /usr/perl/v5.x.y and /usr/perl/v5.x.y/bin -- it saves having Perl ask you "are you sure" questions. The Perl configured above failed 4 tests, all related to NDBM. That doesn't surprise me or worry me. I was able to get through the make but ran into a problem with make test that I'm trying to figure out. Thanks again. ext/Time/HiRes/t/HiRes....................ld.so.1: perl: fatal: relocation error: file ../lib/auto/Time/HiRes/HiRes.so: symbol nanod I can't find nanod on my system at all - or in the source for Time::HiRes. That's odd. Not surprising that it failed to find nanod - but odd that it thought it should. ../ext/Time/HiRes/t/HiRes.t: overall time allowed for tests (60s) exceeded! Use of uninitialized value in subtraction (-) at ../ext/Time/HiRes/t/HiRes.t line 592. Terminated make[2]: *** [_test_tty] Error 143 Terminated make[1]: *** [_test] Error 143 Terminated make: *** [test] Error 143 Terminated I generated this information from the uninstalled Perl, using the command shown: Black JL: ./perl -Ilib -MConfig -e 'foreach my $key (sort keys %Config) > { print "$key=$Config{$key}\n"; }' | egrep -i 'time|nano' asctime_r_proto=0 cf_time=Thu Mar 20 11:33:46 PDT 2008 ctime_r_proto=0 d_asctime_r= d_ctime_r= d_difftime=define d_ftime= d_futimes= d_getitimer=define d_gettimeod=define d_gmtime_r= d_localtime_r= d_mktime=define d_setitimer=define d_strftime=define d_time=define d_times=define dynamic_ext=B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re threads threads/shared extensions=B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re threads threads/shared Errno gmtime_r_proto=0 i_systime=define i_systimek= i_systimes=define i_time= i_utime=define known_extensions=B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re threads threads/shared localtime_r_proto=0 timeincl=/usr/include/sys/time.h timetype=time_t Black JL: If you get anything significantly different, it might be informative and relevant. OTOH, it may not help in the slightest. -----Original Message----- From: Jonathan Leffler [mailto:[EMAIL PROTECTED] Sent: Thursday, March 20, 2008 1:21 PM To: DBI Users Mailing List Subject: Fwd: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6 Darn the mailing list! ---------- Forwarded message ---------- From: Jonathan Leffler <[EMAIL PROTECTED]> Date: Thu, Mar 20, 2008 at 10:20 AM Subject: Re: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6 To: "Vachon, Frederick P (Fred) A5IT" <[EMAIL PROTECTED]> On Thu, Mar 20, 2008 at 10:03 AM, Fred Vachon, Frederick P (Fred) A5IT < [EMAIL PROTECTED]> wrote: > I'm new to this list. I looked over the various Perl mailing lists > and decided on this one although my problem isn't directly related to > DBI. But the reason I'm trying to compile Perl from source as 64 bit > is to use the DBI module and DBD:Oracle (and if I ever can get Perl to > Build I'll probably need help with the DBI!). I am trying to build a > 64 bit Perl from source on my home directory (as non root) on Solaris > 10. I downloaded the most current stable version of Perl 5.8.8 from > CPAN. I'm using the Solaris gcc compiler in /usr/local/bin/gcc which > is version 3.4.6. I get through the Configure step OK but fail when > trying to run make. The tail of the output is listed below. I have > searched the internet for others with this problem but have not been > able to find a solution. I have read the README file for Solaris, the > INSTALL notes and have looked through the hints script. I am not a > sysadmin so my options are limited - I cannot install a different gcc > compiler or make any changes to the system directories. My objective > is to have my own version of Perl so I can add the DBI and DBD::ORACLE > modules. I am running Configure this way. I am taking all the defaults > except I remove directory /usr/lib as mentioned in the Solaris README > notes. sh ./Configure -Dprefix=/home/fred/perl_5.8.8 -Dcc=gcc > -Duse64bitall -Aldflags="-mcpu=v9 -m64" -Alddlflags="-mcpu=v9 -m64 -G" > This is my LD_LIBRARY_PATH and PATH > LD_LIBRARY_PATH > /usr/local/lib:/usr/ccs/lib:/usr/sfw/lib:/usr/dt/lib:/usr/openwin/lib:/u > sr/share/lib:$ORACLE_HOME/lib32 > PATH > /bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:/usr/op > enwin/bin:/etc:$ORACLE_HOME/bin:/usr/ucb > This is the error from make: > CCCMD = gcc -DPERL_CORE -c -mcpu=v9 -m64 -Wa,-xarch=v9 > -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/ll > gcc -m64 -mcpu=v9 -m64 -L/usr/local/lib -o miniperl \ > miniperlmain.o opmini.o libperl.a > Undefined first referenced > symbol in file > cos libperl.a(pp.o) > exp libperl.a(pp.o) > log libperl.a(pp.o) > pow libperl.a(pp.o) > sin libperl.a(pp.o) > ceil libperl.a(pp.o) > fmod libperl.a(pp.o) > sqrt libperl.a(pp.o) > atan2 libperl.a(pp.o) > floor libperl.a(pp.o) > ld: fatal: Symbol referencing errors. No output written to miniperl > collect2: ld returned 1 exit status > make: *** [miniperl] Error 1 Those are maths library functions - the link line needs to include -lm. I'm not clear why it doesn't - I never had this problem on my Solaris boxes. You might need to replace /usr/lib with /usr/lib/sparcv9. Here's the 'perl -V' output from a successful 64-bit Perl (with threading and multiplicity) built on Solaris 8 with GCC 4.0.2 back in 2006: Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=solaris, osvers=2.8, archname=sun4-solaris-thread-multi-64 uname='sunos anubis 5.8 generic_117350-16 sun4u sparc sunw,ultra-5_10 solaris ' config_args='-Duse64bitall -Duseithreads -Dusethreads -Dusemultiplicity -Dcc=gcc -m64' 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=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc -m64', ccflags ='-D_REENTRANT -mcpu=v9 -m64 -Wa,-xarch=v9 -fno-strict-aliasing -pipe -Wd eclaration-after-statement -I/usr/gnu64/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O', cppflags='-D_REENTRANT -mcpu=v9 -m64 -Wa,-xarch=v9 -fno-strict-aliasing -pipe -Wdeclaration-afte r-statement -I/usr/gnu64/include' ccversion='', gccversion='4.0.2', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 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 ='-m64 -L/usr/lib/sparcv9 -L/usr/gnu64/lib -L/usr/ccs/lib/sparcv9 ' libpth=/usr/lib/sparcv9 /usr/gnu64/lib /usr/ccs/lib/sparcv9 libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lpthread -lc perllibs=-lsocket -lnsl -ldl -lm -lpthread -lc libc=/usr/lib/sparcv9/libc.so, so=so, useshrplib=false, libperl= libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags='-fPIC', lddlflags=' -G -m64 -L/usr/lib/sparcv9 -L/usr/gnu64/lib -L/usr/ccs/lib/sparc v9' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under solaris Compiled at Feb 13 2006 12:40:40 @INC: /usr/perl/v5.8.8-64bit-thread-multi/lib/5.8.8/sun4-solaris-thread-multi- 64 /usr/perl/v5.8.8-64bit-thread-multi/lib/5.8.8 /usr/perl/v5.8.8-64bit-thread-multi/lib/site_perl/5.8.8/sun4-solaris-thr ead-multi-64 /usr/perl/v5.8.8-64bit-thread-multi/lib/site_perl/5.8.8 /usr/perl/v5.8.8-64bit-thread-multi/lib/site_perl This isn't a recommendation to use threaded Perl or a Perl with multiplicity - this is just the flavour I needed and therefore have compiled up ready to send you the output. . You could install your own GCC compiler - just put it in ~/gcc instead of /usr/local/bin. However, the problem is not related to GCC versions - it is about library path setups. Some description of the oddities in my setup. When compiling 64-bit, I specify the basic 64-bit compiler option in the CC command name: "gcc -m64". I have to exclude /usr/local -- it is an automounted read-only file system containing archaic garbage (like Perl 5.4.4) and I don't trust anything in it. I have /usr/gnu or /usr/gnu64 as the local 32-bit and 64-bit equivalents of /usr/local. I install my versions of Perl into /usr/perl (which is actually a symlink somewhere else, but the name given to the compilation system is /usr/perl/v5.8.xxxx etc. I have 8 variants of Perl installed, from 5.5.3 (don't really need that any more) through 5.10.0. > These are some of the things I have tried so far to fix this: 1. From > the INSTALL notes I found reference to the Missing Undefined Symbols > problem. So I did a make distclean and started over. When config > offered an opportunity to edit config.sh I went in and saw that libs > variable was empty. I changed it to be libs='-lsocket -lnsl -ldl -lm > -lc'. That didn't work - same make error. 2. So I tried another > suggestion from the INSTALL notes and tried not using nm extraction > with the -Uusenm option for configure. I started over again with > distclean but that didn't work either. 3. So I'm really stuck - I've > tried many other things - mainly playing around with directory paths > when prompted running Configure, in config.sh, and in PATH and > LD_LIBRARY_PATH - adding the sparv9 directories... anything I could > think of - but no luck. Any help would be greatly appreciated. I have > been struggling with this problem for several days and cannot get past > the make problem. Somehow it's not finding the math library - or it's > getting confused between 32bit and 64bit libraries - but I don't know > how to fix it. Cheers! Fred > -- Jonathan Leffler <[EMAIL PROTECTED]> #include <disclaimer.h> Guardian of DBD::Informix - v2008.0229 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused." -- Jonathan Leffler <[EMAIL PROTECTED]> #include <disclaimer.h> Guardian of DBD::Informix - v2008.0229 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused." ------------------------------------------------------------------------ ------ CONFIDENTIALITY NOTICE: If you have received this email in error, please immediately notify the sender by e-mail at the address shown. This email transmission may contain confidential information. This information is intended only for the use of the individual(s) or entity to whom it is intended even if addressed incorrectly. Please delete it from your files if you are not the intended recipient. Thank you for your compliance. Copyright 2008 CIGNA ======================================================================== ====== -- Jonathan Leffler <[EMAIL PROTECTED]> #include <disclaimer.h> Guardian of DBD::Informix - v2008.0229 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused." ------------------------------------------------------------------------------ CONFIDENTIALITY NOTICE: If you have received this email in error, please immediately notify the sender by e-mail at the address shown. This email transmission may contain confidential information. This information is intended only for the use of the individual(s) or entity to whom it is intended even if addressed incorrectly. Please delete it from your files if you are not the intended recipient. Thank you for your compliance. Copyright 2008 CIGNA ==============================================================================