RE: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6
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/HiResld.so.1: perl: fatal: relocation error: file ../lib/auto/Time/HiRes/HiRes.so: symbol nanod
Re: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6
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
Re: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6
On Fri, Mar 21, 2008 at 10:21 AM, Vachon, Frederick P (Fred) A5IT [EMAIL PROTECTED] wrote: Thanks for getting back. I'm kinda new at this. I found that I needed to add the rt library to libs variable -lrt. So I did that and rebuild. So I'm almost there. I get 2 errors on the make test. Do you need to have 100% on make test to install? Some notes say (probably harmless) ? If the stuff you need is working, I'd probably go with the install despite the failures. However, if something subsequently goes wrong - especially with something like getppid() - then you need to remember that there were some test failures. For my build, there were 4 failures related to NDBM. I'm not worried because I don't normally use that. Failed Test Stat Wstat Total Fail Failed List of Failed --- ../lib/ExtUtils/t/Embed.t 9 9 100.00% 1-9 op/getppid.t 3 1 33.33% 3 79 tests and 198 subtests skipped. Failed 2/988 test scripts, 99.80% okay. 10/116518 subtests failed, 99.99%okay. --- HERE IS MORE DETAIL ./perl op/getppid.t 1..3 ok 1 # ppid1=19577 ok 2 # ppid2=20926, ppid1!=ppid2 not ok 3 # ppid2=1 -- ./perl -I../lib ../lib/ExtUtils/t/Embed.t 1..9 Note (probably harmless): No library found for -lsocket Note (probably harmless): No library found for -lnsl Note (probably harmless): No library found for -ldl Note (probably harmless): No library found for -lm Note (probably harmless): No library found for -lc Note (probably harmless): No library found for -lrt # gcc -m64 -o embed_test -I.. -mcpu=v9 -m64 -Wa,-xarch=v9 -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/in 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 embed_test collect2: ld returned 1 exit status not ok 1 # embed_test = ./embed_test not ok 9 # system returned -1 [...megasnip...] -- 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.
Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6
Hi, 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 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 -- 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 ==
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
RE: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6
I'm not an Oracle specialist, but here's one tip. You *can* install your own gcc. Same for Perl, and DBI libraries. If you follow the README directions you will see there is a configure script and you can get 'make install' to install the software in a location of your own choosing. Then you just have to adjust your PATH environment variable to point to the software you have installed. Most packages let you set a 'prefix' value that specifies where to install. If you make it somewhere under your home directory, then you don't need root permissions for 'make install'. -Will -Original Message- From: Vachon, Frederick P (Fred) A5IT [mailto:[EMAIL PROTECTED] Sent: Thursday 20 March 2008 13:04 To: dbi-users@perl.org Subject: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6 Hi, 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. . . . - - - - - Appended by Scientific Atlanta, a Cisco company - - - - - This e-mail and any attachments may contain information which is confidential, proprietary, privileged or otherwise protected by law. The information is solely intended for the named addressee (or a person responsible for delivering it to the addressee). If you are not the intended recipient of this message, you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If you have received this e-mail in error, please notify the sender immediately by return e-mail and delete it from your computer.
Re: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6
Upgrade your gcc and get the sun code generator if you want it from SUN... It's version 4.2.0 read the url. http://www.sun.com/download/products.xml?id=43fb4c75 Check out the cool tools also on that page.. As an example HPUX also does both as a duo package. http://hpux.cs.utah.edu/hppd/cgi-bin/search?package=ondescription=onterm=gccSearch=Search They're at 4.2.3 for gcc and also 4.2.3 for the binutils package I got both but I got to get the HPs fixed first.. Rich • '•..• '•. º .• '•. .• '•. •. .• '•. º “Anything that doesn’t eat you today is saving you for tomorrow.” Computer Sciences Corporation Registered Office: 2100 East Grand Avenue, El Segundo California 90245, USA Registered in USA No: C-489-59 This is a PRIVATE message. If you are not the intended recipient, please delete without copying and kindly advise us by e-mail of the mistake in delivery. NOTE: Regardless of content, this e-mail shall not operate to bind CSC to any order or other contract unless pursuant to explicit written agreement or government initiative expressly permitting the use of e-mail for such purpose. Vachon, Frederick P (Fred) A5IT [EMAIL PROTECTED] 03/20/2008 01:03 PM To dbi-users@perl.org cc Subject Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6 Hi, 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 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
Re: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6
On Thu, Mar 20, 2008 at 10:39 AM, Richard T Malafa [EMAIL PROTECTED] wrote: Upgrade your gcc and get the sun code generator if you want it from SUN... It's version 4.2.0 read the url. http://www.sun.com/download/products.xml?id=43fb4c75 Check out the cool tools also on that page.. It's not necessary - GCC 3.4.6 is fine. I've just rebuilt Perl 5.8.8 with GCC 3.4.6 in 64-bit mode. It was more exasperating than I expected because some monkey added a hint in hints/solaris_2.sh to use getconf to add arguments to the linker - search for an if statement that contains: ccflags=$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS 2/dev/null` Eliminate it - it comments that it isn't sure it is necessary, and it is actually counter productive. I also got 7 (count them!) copies of -DPERL_USE_SAFE_PUTENV because a config.over got extended each time I ran the configure. Grump! -- 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.
RE: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6
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 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/HiResld.so.1: perl: fatal: relocation error: file ../lib/auto/Time/HiRes/HiRes.so: symbol nanod ../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 -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
Re: Make problem Building 64 bit Perl 5.8.8 from source on Solaris 10 with gcc 3.4.6
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