Install DBI/DBD on 64 bit linux (eagle64)

Install DBI/DBD on 64 bit linux (eagle64)

am 04.01.2006 18:16:07 von scoles

I am trying to compile Oracle:DBD for a full Oracle 10g install on a Redhat
64 bit linux (egle64) and I am wondering if anyone has ever gotten the
following

So far I have gotten the Makefile.PL to work

but when I do the make command I get this

/app/oracle/working/raj/DBD-Oracle-1.16> make
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
LD_RUN_PATH="/app/oracle/product/10.2.0/lib:/app/oracle/prod uct/10.2.0/rdbms
/lib" gcc -shared -L/usr/local/lib -fPIC Oracle.o dbdimp.o
oci8.o -L/app/oracle/product/10.2.0/lib/ -L/app/oracle/product/10.2.0/rdbms/
lib/ -lclntsh `cat
app/oracle/product/10.2.0/lib/sysliblist` -ldl -lm -lpthread -o
blib/arch/auto/DBD/Oracle/Oracle.so
/usr/bin/ld: /app/oracle/product/10.2.0/lib//libirc.a(fast_memcpy.o):
relocation R_X86_64_PC32 against `_memcpy_mem_ops_method' can not be used
when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/DBD/Oracle/Oracle.so] Error 1


I orginally got an error asking me to use the -fPIC flag and I have
recompliled both Perl, DBI whith this flag and I am using mutithreading.


Here is my enviornment settings

oracle@eagle64.palmcoastd.local 10.2.0 --> (advp64)
/app/oracle/working/raj/DBD-Oracle-1.16> perl -V
Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=linux, osvers=2.6.9-22.0.1.elsmp, archname=x86_64-linux
uname='linux eagle64.palmcoastd.local 2.6.9-22.0.1.elsmp #1 smp tue oct
18 18:39:02 edt 2005 x86_64 x86_64 x86_64 gnulinux '
config_args=''
hint=previous, 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='gcc', ccflags
='-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FIL
E_OFFSET_BITS=64 -I/usr/include/gdbm -fPIC',
optimize='-O2',




cppflags='-fno-strict-aliasing -pipe -I/usr/local/include -I/usr/include/gdb
m -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FIL
E_OFFSET_BITS=64 -I/usr/include/gdbm -fno-strict-aliasing -pipe -I/usr/local
/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -fPI
C'
ccversion='', gccversion='3.4.4 20050721 (Red Hat 3.4.4-2)',
gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
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', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -ldl -lm -lcrypt -lutil -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=/lib/libc-2.3.4.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.3.4'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fPIC'


Characteristics of this binary (from libperl):
Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES
Built under linux
Compiled at Jan 4 2006 11:49:14
@INC:
/app/oracle/perl/lib/5.8.7/x86_64-linux
/app/oracle/perl/lib/5.8.7
/app/oracle/perl/lib/site_perl/5.8.7/x86_64-linux
/app/oracle/perl/lib/site_perl/5.8.7
/app/oracle/perl/lib/site_perl
.

Cheers.

Re: Install DBI/DBD on 64 bit linux (eagle64)

am 09.01.2006 14:24:17 von Tim.Bunce

On Wed, Jan 04, 2006 at 12:16:07PM -0500, John Scoles wrote:
> I am trying to compile Oracle:DBD for a full Oracle 10g install on a Redhat
> 64 bit linux (egle64) and I am wondering if anyone has ever gotten the
> following
>
> So far I have gotten the Makefile.PL to work
>
> but when I do the make command I get this
>
> /app/oracle/working/raj/DBD-Oracle-1.16> make
> rm -f blib/arch/auto/DBD/Oracle/Oracle.so
> LD_RUN_PATH="/app/oracle/product/10.2.0/lib:/app/oracle/prod uct/10.2.0/rdbms
> /lib" gcc -shared -L/usr/local/lib -fPIC Oracle.o dbdimp.o
> oci8.o -L/app/oracle/product/10.2.0/lib/ -L/app/oracle/product/10.2.0/rdbms/
> lib/ -lclntsh `cat
> app/oracle/product/10.2.0/lib/sysliblist` -ldl -lm -lpthread -o
> blib/arch/auto/DBD/Oracle/Oracle.so
> /usr/bin/ld: /app/oracle/product/10.2.0/lib//libirc.a(fast_memcpy.o):
> relocation R_X86_64_PC32 against `_memcpy_mem_ops_method' can not be used
> when making a shared object; recompile with -fPIC

Seems like it's saying the problem is in /app/oracle/product/10.2.0/lib/libirc.a
Since it's not listed on the command like perhaps it's being included
via `cat app/oracle/product/10.2.0/lib/sysliblist`. Take a look.
If so, try replacing the `cat ...` with the contents of sysliblist minus libirc.a.

Tim.

> I orginally got an error asking me to use the -fPIC flag and I have
> recompliled both Perl, DBI whith this flag and I am using mutithreading.
>
>
> Here is my enviornment settings
>
> oracle@eagle64.palmcoastd.local 10.2.0 --> (advp64)
> /app/oracle/working/raj/DBD-Oracle-1.16> perl -V
> Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
> Platform:
> osname=linux, osvers=2.6.9-22.0.1.elsmp, archname=x86_64-linux
> uname='linux eagle64.palmcoastd.local 2.6.9-22.0.1.elsmp #1 smp tue oct
> 18 18:39:02 edt 2005 x86_64 x86_64 x86_64 gnulinux '
> config_args=''
> hint=previous, 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='gcc', ccflags
> ='-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FIL
> E_OFFSET_BITS=64 -I/usr/include/gdbm -fPIC',
> optimize='-O2',
>
>
>
>
> cppflags='-fno-strict-aliasing -pipe -I/usr/local/include -I/usr/include/gdb
> m -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FIL
> E_OFFSET_BITS=64 -I/usr/include/gdbm -fno-strict-aliasing -pipe -I/usr/local
> /include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -fPI
> C'
> ccversion='', gccversion='3.4.4 20050721 (Red Hat 3.4.4-2)',
> gccosandvers=''
> intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
> 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', ldflags =' -L/usr/local/lib'
> libpth=/usr/local/lib /lib /usr/lib
> libs=-lnsl -ldl -lm -lcrypt -lutil -lc
> perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
> libc=/lib/libc-2.3.4.so, so=so, useshrplib=false, libperl=libperl.a
> gnulibc_version='2.3.4'
> Dynamic Linking:
> dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
> cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fPIC'
>
>
> Characteristics of this binary (from libperl):
> Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES
> Built under linux
> Compiled at Jan 4 2006 11:49:14
> @INC:
> /app/oracle/perl/lib/5.8.7/x86_64-linux
> /app/oracle/perl/lib/5.8.7
> /app/oracle/perl/lib/site_perl/5.8.7/x86_64-linux
> /app/oracle/perl/lib/site_perl/5.8.7
> /app/oracle/perl/lib/site_perl
> .
>
> Cheers.
>
>

Re: Install DBI/DBD on 64 bit linux (eagle64)

am 09.01.2006 18:04:03 von scoles

Yup, it worked. Here's what I did finally:

1. run 'perl Makefile.PL' as usual
2. edit the resulting Makefile and remove all references to
`cat /app/oracle/product/10.2.0/lib/sysliblist` - there were 2
references. Added in the libraries that the cat gave me minus lirc.
3. compiled, tested, worked fine.


cheers!


"Tim Bunce" wrote in message
news:20060109132417.GA26228@timac.local...
> On Wed, Jan 04, 2006 at 12:16:07PM -0500, John Scoles wrote:
> > I am trying to compile Oracle:DBD for a full Oracle 10g install on a
Redhat
> > 64 bit linux (egle64) and I am wondering if anyone has ever gotten the
> > following
> >
> > So far I have gotten the Makefile.PL to work
> >
> > but when I do the make command I get this
> >
> > /app/oracle/working/raj/DBD-Oracle-1.16> make
> > rm -f blib/arch/auto/DBD/Oracle/Oracle.so
> >
LD_RUN_PATH="/app/oracle/product/10.2.0/lib:/app/oracle/prod uct/10.2.0/rdbms
> > /lib" gcc -shared -L/usr/local/lib -fPIC Oracle.o dbdimp.o
> >
oci8.o -L/app/oracle/product/10.2.0/lib/ -L/app/oracle/product/10.2.0/rdbms/
> > lib/ -lclntsh `cat
> > app/oracle/product/10.2.0/lib/sysliblist` -ldl -lm -lpthread -o
> > blib/arch/auto/DBD/Oracle/Oracle.so
> > /usr/bin/ld: /app/oracle/product/10.2.0/lib//libirc.a(fast_memcpy.o):
> > relocation R_X86_64_PC32 against `_memcpy_mem_ops_method' can not be
used
> > when making a shared object; recompile with -fPIC
>
> Seems like it's saying the problem is in
/app/oracle/product/10.2.0/lib/libirc.a
> Since it's not listed on the command like perhaps it's being included
> via `cat app/oracle/product/10.2.0/lib/sysliblist`. Take a look.
> If so, try replacing the `cat ...` with the contents of sysliblist minus
libirc.a.
>
> Tim.
>
> > I orginally got an error asking me to use the -fPIC flag and I have
> > recompliled both Perl, DBI whith this flag and I am using mutithreading.
> >
> >
> > Here is my enviornment settings
> >
> > oracle@eagle64.palmcoastd.local 10.2.0 --> (advp64)
> > /app/oracle/working/raj/DBD-Oracle-1.16> perl -V
> > Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
> > Platform:
> > osname=linux, osvers=2.6.9-22.0.1.elsmp, archname=x86_64-linux
> > uname='linux eagle64.palmcoastd.local 2.6.9-22.0.1.elsmp #1 smp tue
oct
> > 18 18:39:02 edt 2005 x86_64 x86_64 x86_64 gnulinux '
> > config_args=''
> > hint=previous, 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='gcc', ccflags
> >
='-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FIL
> > E_OFFSET_BITS=64 -I/usr/include/gdbm -fPIC',
> > optimize='-O2',
> >
> >
> >
> >
> >
cppflags='-fno-strict-aliasing -pipe -I/usr/local/include -I/usr/include/gdb
> >
m -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FIL
> >
E_OFFSET_BITS=64 -I/usr/include/gdbm -fno-strict-aliasing -pipe -I/usr/local
> >
/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -fPI
> > C'
> > ccversion='', gccversion='3.4.4 20050721 (Red Hat 3.4.4-2)',
> > gccosandvers=''
> > intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
> > 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', ldflags =' -L/usr/local/lib'
> > libpth=/usr/local/lib /lib /usr/lib
> > libs=-lnsl -ldl -lm -lcrypt -lutil -lc
> > perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
> > libc=/lib/libc-2.3.4.so, so=so, useshrplib=false, libperl=libperl.a
> > gnulibc_version='2.3.4'
> > Dynamic Linking:
> > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
> > cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fPIC'
> >
> >
> > Characteristics of this binary (from libperl):
> > Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES
> > Built under linux
> > Compiled at Jan 4 2006 11:49:14
> > @INC:
> > /app/oracle/perl/lib/5.8.7/x86_64-linux
> > /app/oracle/perl/lib/5.8.7
> > /app/oracle/perl/lib/site_perl/5.8.7/x86_64-linux
> > /app/oracle/perl/lib/site_perl/5.8.7
> > /app/oracle/perl/lib/site_perl
> > .
> >
> > Cheers.
> >
> >