On Fri, Mar 21, 2008 at 6:41 AM, Vachon, Frederick P (Fred) A5IT < [EMAIL PROTECTED]> wrote:
> 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 > Ah - nanosleep is definitely around normally - in either or both of libposix4.so or librt.so. I've not checked for other places, but the hints file in ext/Time/HiRes/hints/solaris_2.sh clearly identifies these libraries and 'nm -g /usr/lib/librt.so /usr/lib/libposix4.so | grep nanosleep | grep -v UNDEF' shows them present. If you've got neither of those libaries on the machine, get them installed. You could try rebuilding Time::HiRes manually in the source tree (the code is in ext/Time/HiRes under the perl-5.8.8 directory). The tricky bit is getting your new Perl to do it. This seemed to work for me y'day: ../../../perl -I../../../lib Makefile.PL > 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 > > ============================================================================== > -- 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."