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/HiRes....................ld.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 -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
==============================================================================

Reply via email to