Hi,
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 - fred.vachon@cigna.com
------------------------------------------------------------------------------
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
==============================================================================