perl DBD and DBI for 64 bit perl

------_=_NextPart_001_01C7495A.1F2262E0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello,

I'm trying to track down DBD and DBI for 64 bit perl. Does it exist?
If so, can you point me in the right direction?

Regards,

Joe Wholey
UNIX Systems Administration
phone: (212) 647-3018
pager: 1-888-merrill0
E-mail: joseph_wholey [at] ml.com
--------------------------------------------------------

If you are not an intended recipient of this e-mail, please notify the =
sender, delete it and do not read, act upon, print, disclose, copy, =
retain or redistribute it. Click here for important additional terms =
relating to this e-mail. http://www.ml.com/email_terms/
--------------------------------------------------------

------_=_NextPart_001_01C7495A.1F2262E0--
joseph_wholey [ Mo, 05 Februar 2007 20:16 ] [ ID #1619708 ]

Re: perl DBD and DBI for 64 bit perl

------=_Part_48924_17442088.1170719739842
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 2/5/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:

> I'm trying to track down DBD and DBI for 64 bit perl. Does it exist?
> If so, can you point me in the right direction?
>

What are you seeking?
It exists if you compile it.
Do you need help compiling a 64-bit Perl?
Compiling DBI with your pre-built 64-bit Perl?
Do you want a pre-built 64-bit Perl?
If so, for which platform? The version I have on Solaris 8 may not be all
that much use to you.

--
Jonathan Leffler <jonathan.leffler [at] gmail.com> #include <disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."

------=_Part_48924_17442088.1170719739842--
jonathan.leffler [ Di, 06 Februar 2007 00:55 ] [ ID #1619709 ]

AW: perl DBD and DBI for 64 bit perl

Hello Jonathan,

at the momment I am searching for a pre-built 64-Bit Perl for Solaris 10 =
Sparc, too. Do you know where one can be found?
Thanks for any hints.

Govinda


-----Ursprüngliche Nachricht-----
Von: Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
Gesendet: Dienstag, 6. Februar 2007 00:56
An: Wholey, Joseph (GTI)
Cc: dbi-users [at] perl.org
Betreff: Re: perl DBD and DBI for 64 bit perl

On 2/5/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:

> I'm trying to track down DBD and DBI for 64 bit perl. Does it exist?
> If so, can you point me in the right direction?
>

What are you seeking?
It exists if you compile it.
Do you need help compiling a 64-bit Perl?
Compiling DBI with your pre-built 64-bit Perl?
Do you want a pre-built 64-bit Perl?
If so, for which platform? The version I have on Solaris 8 may not be =
all that much use to you.

--
Jonathan Leffler <jonathan.leffler [at] gmail.com> #include <disclaimer.h> =
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org "I don't =
suffer from insanity - I enjoy every minute of it."
Govinda.Pfister [ Di, 06 Februar 2007 07:15 ] [ ID #1621038 ]

Re: perl DBD and DBI for 64 bit perl

------=_Part_477_29471351.1170746337300
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On 2/5/07, Govinda.Pfister [at] telekom.de <Govinda.Pfister [at] telekom.de> wrote:
>
> Hello Jonathan,
>
> at the momment I am searching for a pre-built 64-Bit Perl for Solaris 10
> Sparc, too. Do you know where one can be found?
> Thanks for any hints.


Have you looked at the Sun sites - http://sun.com/ and/or http://sunsoft.co=
m?
Googling "64-bit perl solaris 10" and going a fair way down the first page
gets to docs.sun.com and discussions about Perl 5.8.4 and 64-bit. If you
simply need to upgrade, use the 'perl -V' output from 5.8.4 as installed as
guidance on how to configure 5.8.8.

Failing that, is one built on Solaris 8 any use? It uses GCC, is compiled
64-bit, threaded, ithreads, and multiplicity, and installs into
/usr/perl/v5.8.8. But frankly, it is simplest just to build your own - I'd
worry whether I've got dependencies on /usr/gnu64, for example, which is a
necessity on my machine but most people can use /usr/local instead.

My technique for ensuring that a build is 64-bit is to use 'gcc -m64' (or
with the Sun compiler, 'cc -xarch=3Dsparcv9') as the compiler name; that wa=
y,
every use of the compiler invokes 64-bittiness. The residual issues are
then down to specifying the correct library directories (/usr/lib/sparcv9,
IIRC, for example, instead of /usr/lib).


-----Ursprüngliche Nachricht-----
> Von: Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
> Gesendet: Dienstag, 6. Februar 2007 00:56
> An: Wholey, Joseph (GTI)
> Cc: dbi-users [at] perl.org
> Betreff: Re: perl DBD and DBI for 64 bit perl
>
> On 2/5/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
>
> > I'm trying to track down DBD and DBI for 64 bit perl. Does it exist?
> > If so, can you point me in the right direction?
>
> What are you seeking?
> It exists if you compile it.
> Do you need help compiling a 64-bit Perl?
> Compiling DBI with your pre-built 64-bit Perl?
> Do you want a pre-built 64-bit Perl?
> If so, for which platform? The version I have on Solaris 8 may not be al=
l
> that much use to you.
>



--
Jonathan Leffler <jonathan.leffler [at] gmail.com> #include <disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."

------=_Part_477_29471351.1170746337300--
jonathan.leffler [ Di, 06 Februar 2007 08:18 ] [ ID #1621039 ]

RE: perl DBD and DBI for 64 bit perl

------_=_NextPart_001_01C7498F.75074E34
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I need perl dbd and dbi 64 bit for Red Hat Linux version 4.

-----Original Message-----
From: Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
Sent: Monday, February 05, 2007 6:56 PM
To: Wholey, Joseph (GTI)
Cc: dbi-users [at] perl.org
Subject: Re: perl DBD and DBI for 64 bit perl
=09
=09


On 2/5/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
=09

I'm trying to track down DBD and DBI for 64 bit perl.
Does it exist?
If so, can you point me in the right direction?
=09


What are you seeking?
It exists if you compile it.
Do you need help compiling a 64-bit Perl?
Compiling DBI with your pre-built 64-bit Perl?
Do you want a pre-built 64-bit Perl?
If so, for which platform? The version I have on Solaris 8 may
not be all that much use to you.
=09
--
Jonathan Leffler < jonathan.leffler [at] gmail.com> #include
<disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."
--------------------------------------------------------

If you are not an intended recipient of this e-mail, please notify the =
sender, delete it and do not read, act upon, print, disclose, copy, =
retain or redistribute it. Click here for important additional terms =
relating to this e-mail. http://www.ml.com/email_terms/
--------------------------------------------------------

------_=_NextPart_001_01C7498F.75074E34--
joseph_wholey [ Di, 06 Februar 2007 02:38 ] [ ID #1621040 ]

Re: perl DBD and DBI for 64 bit perl

------=_Part_10404_6040428.1170952185723
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
>
>
> Jonathon,
>


Dear Josaph :-)

I'm really in a pinch here:
>
> Here's the error I get when I try to compile the DBD:. Can you help me
> out here. Below you'll find my level of Perl and the dbd and dbi versions
> I'm attempting to install.
>
> gcc -shared DB2.o dbdimp.o -o blib/arch/auto/DBD/DB2/DB2.so
> -L/opt/IBM/db2/V8.1/lib -ldb2
> /usr/bin/ld: skipping incompatible /opt/IBM/db2/V8.1/lib/libdb2.so when
> searching for -ldb2
>


Well, it looks like the DB2 client software you have is probably a 32-bit
version, so GCC is quite correctly not linking your 64-bit DBD::DB2 module
with the 32-bit DB2 client software -- it wouldn't work even if it tried.

You have two options:
* Find, install, use a 64-bit DB2 client library.
* Recompile Perl, DBI and then DBD::DB2 as 32-bit code to use the 32-bit DB2
client.

Both would work - which is better for you depends on whether you can find a
64-bit DB2 client library.


/usr/bin/ld: cannot find -ldb2
> collect2: ld returned 1 exit status
> make: *** [blib/arch/auto/DBD/DB2/DB2.so] Error 1
> [root [at] mphqa1cjs101 DBD-DB2-0.78]#
>
>
> Here are the versions I'm trying to compile as well as the perl version.
>
> DBI-1.51
> DBD-DB2-0.78
>
> [root [at] mphqa1cjs101 DBD-DB2-0.78]# perl -v
>
> This is perl, v5.8.5 built for x86_64-linux-thread-multi
>



--
Jonathan Leffler <jonathan.leffler [at] gmail.com> #include <disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."

------=_Part_10404_6040428.1170952185723--
jonathan.leffler [ Do, 08 Februar 2007 17:29 ] [ ID #1623514 ]

Re: perl DBD and DBI for 64 bit perl

------=_Part_11328_12571334.1170958465815
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
>
> Jonathon,
>

Dear Joseph,

My name is JonathAn - please!

OK... we're making progress... that is a 64 bit db2... maybe there is a
> problem with their libraries. Anyway, what from that error I'd sent you
> indicates that it's going against a 32 bit db2 lib? btw... I really
> appreciate your help on this.
>


You need to distinguish between the database server (which I think your
evidence below shows is the case) and the client software used to connect to
it.

The evidence from your build suggests that the client software installed in
/opt/IBM/db2/V8.1/lib
(the libdb2.so file in there) is a 32-bit library. You can confirm that by
running the 'file' command on it.

For example:

Anubis JL: cd /usr/lib
Anubis JL: file libc.so
libc.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically
linked, not stripped
Anubis JL: cd sparcv9
Anubis JL: file libc.so
libc.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically
linked, not stripped
Anubis JL:

Assuming that this is the problem, you will either need to install the
64-bit client software - probably in a separate location so you don't break
the existing code that uses the 32-bit software (though I'm not sure how
easily you can do that with DB2) - or you have to use a 32-bit Perl and
32-bit DBI to build a 32-bit DBD::DB2 using the 32-bit DB2 client libraries.

If this is not the problem, then we need to understand why GCC is refusing
to play with the libdb2.so library in /opt/IBM/...


rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>exit
> [root [at] mphqa1cjs101 DBD_DBI]# su - rpcjq
> mphqa1cjs101
>
> ############################################################
> *** db2instance ---> rpcjq
> *** db2dbdft ---> DBRPCJ
> *** schema ---> RPCJQ
> *** UNIX ID ---> rpcjq
> ############################################################
>
> rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>db2level
> DB21085I Instance "rpcjq" uses "64" bits and DB2 code release "SQL08025"
> with
> level identifier "03060106".
> Informational tokens are "DB2 v8.1.3.112", "s060429", "MI00159", and
> FixPak
> "12".
> Product is installed at "/opt/IBM/db2/V8.1".
>
>
> -----Original Message-----
> *From:* Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
> *Sent:* Thursday, February 08, 2007 11:30 AM
> *To:* Wholey, Joseph (GTI)
> *Cc:* dbi-users [at] perl.org
> *Subject:* Re: perl DBD and DBI for 64 bit perl
>
>
> On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
> >
> >
> > Jonathon,
> >
>
>
> Dear Josaph :-)
>
>
Hint given - not noticed :-(

I'm really in a pinch here:
> >
> > Here's the error I get when I try to compile the DBD:. Can you help me
> > out here. Below you'll find my level of Perl and the dbd and dbi versions
> > I'm attempting to install.
> >
> > gcc -shared DB2.o dbdimp.o -o blib/arch/auto/DBD/DB2/DB2.so
> > -L/opt/IBM/db2/V8.1/lib -ldb2
> > /usr/bin/ld: skipping incompatible /opt/IBM/db2/V8.1/lib/libdb2.so when
> > searching for -ldb2
> >
>
>
> Well, it looks like the DB2 client software you have is probably a 32-bit
> version, so GCC is quite correctly not linking your 64-bit DBD::DB2 module
> with the 32-bit DB2 client software -- it wouldn't work even if it tried.
>
> You have two options:
> * Find, install, use a 64-bit DB2 client library.
> * Recompile Perl, DBI and then DBD::DB2 as 32-bit code to use the 32-bit
> DB2 client.
>
> Both would work - which is better for you depends on whether you can find
> a 64-bit DB2 client library.
>
>
> /usr/bin/ld: cannot find -ldb2
> > collect2: ld returned 1 exit status
> > make: *** [blib/arch/auto/DBD/DB2/DB2.so] Error 1
> > [root [at] mphqa1cjs101 DBD-DB2-0.78]#
> >
> >
> > Here are the versions I'm trying to compile as well as the perl version.
> >
> >
> > DBI-1.51
> > DBD-DB2-0.78
> >
> > [root [at] mphqa1cjs101 DBD-DB2-0.78]# perl -v
> >
> > This is perl, v5.8.5 built for x86_64-linux-thread-multi
> >
>
--
Jonathan Leffler <jonathan.leffler [at] gmail.com> #include <disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."

------=_Part_11328_12571334.1170958465815--
jonathan.leffler [ Do, 08 Februar 2007 19:14 ] [ ID #1623515 ]

Re: perl DBD and DBI for 64 bit perl

------=_Part_12180_19698958.1170963462474
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
>
> You are correct... it is a 32 bit file.... bear with me...I'm a little
> confused by this statement:
>
> "You need to distinguish between the database server (which I think your
> evidence below shows is the case) and the client software used to connect to
> it." The server in question, is the database server.
>


The parenthetical remark in my sentence wasn't complete - apologies. If you
ignore that, then I said that you simply need to be aware that the
application program (eg Perl + DBI + DBD::DB2) uses a client library to
connect to the database server. It does not include the database server
code in the client program. And that means that the client program can have
a different bittiness from the server. What the parenthetical remark should
have been is "(and I think your evidence below shows that the server is a
64-bit server)".


Anyway, moving forward, how do I force the compilation of the modules to go
> to point to the db2 64bit libraries? Do I need to modify the Makefile.plscript? Is there an easier way?
>
> Note: the *.1 files are links.
> [root [at] mphqa1cjs101 lib]# locate libdb2.so
> /opt/IBM/db2/V8.1/lib/libdb2.so.1
> /opt/IBM/db2/V8.1/lib/libdb2.so
> /opt/IBM/db2/V8.1/lib64/libdb2.so.1
> /opt/IBM/db2/V8.1/lib64/libdb2.so
>


This is the valuable information...You have the 64-bit libraries; you just
need to persuade Perl to use them.

I don't have the source for DBD::DB2 0.78 on my machine - but I looked at
0.76 instead. In Makefile.PL, there is code to the effect:

# libraries required to build DBD::DB2 driver
if( $os eq 'MSWin32' || $os eq 'MSWin64' || $os eq 'os2' )
{
$sysliblist = qq(-L"$DB2/lib" db2cli db2api);
my [at] libpaths = split /;/, $ENV{'LIB'};
my $libpath;
while( [at] libpaths )
{
( $libpath = shift( [at] libpaths) ) =~ s/"//g; # Remove quotes
$libpath =~ s:\\:/:g;

if( $libpath && $sysliblist !~ /-L"$libpath"/i )
{
$sysliblist .= qq( -L"$libpath");
}
}
}
else
{
$sysliblist = "-L$DB2/lib -ldb2";
}


This needs to be modified, I believe, so the last else clause takes into
account the possibility of a 64-bit Perl. There are various configuration
items that could be used to identify 64-bit Perl:

$Config{use64bitint}
$Config{use64bitall}
$Config{intsize} == 8
$Config{ptrsize} == 8

So, if some suitable values of these are set, you should change $sysliblist
to use -L$DB2/lib64

elsif ($Config{ptrsize} == 8)
{
$sysliblist = "-L$DB2/lib -ldb2";
}

With this hacked into Makefile.PL, there's a chance you'll build correctly.


DBD::DB2 Maintenance Team - please note this suggested change; validate and
fix for the next release of DBD::DB2. Thanks!



Thanks again...
>
> Regards, Joe
>
> -----Original Message-----
> *From:* Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
> *Sent:* Thursday, February 08, 2007 1:14 PM
> *To:* Wholey, Joseph (GTI)
> *Cc:* DBD::DB2 Maintenance Team; DBI Users Mailing List
> *Subject:* Re: perl DBD and DBI for 64 bit perl
>
>
>
> On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com > wrote:
> >
> > OK... we're making progress... that is a 64 bit db2... maybe there is a
> > problem with their libraries. Anyway, what from that error I'd sent you
> > indicates that it's going against a 32 bit db2 lib? btw... I really
> > appreciate your help on this.
> >
>
>
> You need to distinguish between the database server (which I think your
> evidence below shows is the case) and the client software used to connect to
> it.
>
> The evidence from your build suggests that the client software installed
> in /opt/IBM/db2/V8.1/lib
> (the libdb2.so file in there) is a 32-bit library. You can confirm that
> by running the 'file' command on it.
>
> For example:
>
> Anubis JL: cd /usr/lib
> Anubis JL: file libc.so
> libc.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically
> linked, not stripped
> Anubis JL: cd sparcv9
> Anubis JL: file libc.so
> libc.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically
> linked, not stripped
> Anubis JL:
>
> Assuming that this is the problem, you will either need to install the
> 64-bit client software - probably in a separate location so you don't break
> the existing code that uses the 32-bit software (though I'm not sure how
> easily you can do that with DB2) - or you have to use a 32-bit Perl and
> 32-bit DBI to build a 32-bit DBD::DB2 using the 32-bit DB2 client libraries.
>
>
> If this is not the problem, then we need to understand why GCC is refusing
> to play with the libdb2.so library in /opt/IBM/...
>
>
> rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>exit
> > [root [at] mphqa1cjs101 DBD_DBI]# su - rpcjq
> > mphqa1cjs101
> >
> > ############################################################
> > *** db2instance ---> rpcjq
> > *** db2dbdft ---> DBRPCJ
> > *** schema ---> RPCJQ
> > *** UNIX ID ---> rpcjq
> > ############################################################
> >
> > rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>db2level
> > DB21085I Instance "rpcjq" uses "64" bits and DB2 code release
> > "SQL08025" with
> > level identifier "03060106".
> > Informational tokens are "DB2 v8.1.3.112", "s060429", "MI00159", and
> > FixPak
> > "12".
> > Product is installed at "/opt/IBM/db2/V8.1".
> >
> >
> > -----Original Message-----
> > *From:* Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
> > *Sent:* Thursday, February 08, 2007 11:30 AM
> > *To:* Wholey, Joseph (GTI)
> > *Cc:* dbi-users [at] perl.org
> > *Subject:* Re: perl DBD and DBI for 64 bit perl
> >
> >
> > On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
> >
> > I'm really in a pinch here:
> > >
> > > Here's the error I get when I try to compile the DBD:. Can you help
> > > me out here. Below you'll find my level of Perl and the dbd and dbi
> > > versions I'm attempting to install.
> > >
> > > gcc -shared DB2.o dbdimp.o -o blib/arch/auto/DBD/DB2/DB2.so
> > > -L/opt/IBM/db2/V8.1/lib -ldb2
> > > /usr/bin/ld: skipping incompatible /opt/IBM/db2/V8.1/lib/libdb2.so
> > > when searching for -ldb2
> > >
> >
> >
> > Well, it looks like the DB2 client software you have is probably a
> > 32-bit version, so GCC is quite correctly not linking your 64-bit DBD::DB2
> > module with the 32-bit DB2 client software -- it wouldn't work even if it
> > tried.
> >
> > You have two options:
> > * Find, install, use a 64-bit DB2 client library.
> > * Recompile Perl, DBI and then DBD::DB2 as 32-bit code to use the 32-bit
> > DB2 client.
> >
> > Both would work - which is better for you depends on whether you can
> > find a 64-bit DB2 client library.
> >
> >
> > /usr/bin/ld: cannot find -ldb2
> > > collect2: ld returned 1 exit status
> > > make: *** [blib/arch/auto/DBD/DB2/DB2.so] Error 1
> > > [root [at] mphqa1cjs101 DBD-DB2-0.78]#
> > >
> > >
> > > Here are the versions I'm trying to compile as well as the perl
> > > version.
> > >
> > > DBI-1.51
> > > DBD-DB2-0.78
> > >
> > > [root [at] mphqa1cjs101 DBD-DB2-0.78]# perl -v
> > >
> > > This is perl, v5.8.5 built for x86_64-linux-thread-multi
> > >
> >

--
Jonathan Leffler <jonathan.leffler [at] gmail.com> #include <disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."

------=_Part_12180_19698958.1170963462474--
jonathan.leffler [ Do, 08 Februar 2007 20:37 ] [ ID #1623516 ]

RE: perl DBD and DBI for 64 bit perl

------_=_NextPart_001_01C74BA5.32D88A4C
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Jonathon,

OK... we're making progress... that is a 64 bit db2... maybe there is a
problem with their libraries. Anyway, what from that error I'd sent you
indicates that it's going against a 32 bit db2 lib? btw... I really
appreciate your help on this.

rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>exit
[root [at] mphqa1cjs101 DBD_DBI]# su - rpcjq
mphqa1cjs101

############################################################
*** db2instance ---> rpcjq
*** db2dbdft ---> DBRPCJ
*** schema ---> RPCJQ
*** UNIX ID ---> rpcjq
############################################################

rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>db2level
DB21085I Instance "rpcjq" uses "64" bits and DB2 code release
"SQL08025" with
level identifier "03060106".
Informational tokens are "DB2 v8.1.3.112", "s060429", "MI00159", and
FixPak
"12".
Product is installed at "/opt/IBM/db2/V8.1".


-----Original Message-----
From: Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
Sent: Thursday, February 08, 2007 11:30 AM
To: Wholey, Joseph (GTI)
Cc: dbi-users [at] perl.org
Subject: Re: perl DBD and DBI for 64 bit perl
=09
=09

On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:


Jonathon,



Dear Josaph :-)
=09


I'm really in a pinch here:

Here's the error I get when I try to compile the DBD:.
Can you help me out here. Below you'll find my level of Perl and the
dbd and dbi versions I'm attempting to install.

gcc -shared DB2.o dbdimp.o -o
blib/arch/auto/DBD/DB2/DB2.so -L/opt/IBM/db2/V8.1/lib -ldb2
/usr/bin/ld: skipping incompatible
/opt/IBM/db2/V8.1/lib/libdb2.so when searching for -ldb2



Well, it looks like the DB2 client software you have is probably
a 32-bit version, so GCC is quite correctly not linking your 64-bit
DBD::DB2 module with the 32-bit DB2 client software -- it wouldn't work
even if it tried.
=09
You have two options:
* Find, install, use a 64-bit DB2 client library.
* Recompile Perl, DBI and then DBD::DB2 as 32-bit code to use
the 32-bit DB2 client.
=09
Both would work - which is better for you depends on whether you
can find a 64-bit DB2 client library.

=09


/usr/bin/ld: cannot find -ldb2
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/DBD/DB2/DB2.so] Error 1
[root [at] mphqa1cjs101 DBD-DB2-0.78]#


Here are the versions I'm trying to compile as well as
the perl version.

DBI-1.51
DBD-DB2-0.78

[root [at] mphqa1cjs101 DBD-DB2-0.78]# perl -v

This is perl, v5.8.5 built for x86_64-linux-thread-multi




--
Jonathan Leffler <jonathan.leffler [at] gmail.com> #include
<disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."
--------------------------------------------------------

If you are not an intended recipient of this e-mail, please notify the =
sender, delete it and do not read, act upon, print, disclose, copy, =
retain or redistribute it. Click here for important additional terms =
relating to this e-mail. http://www.ml.com/email_terms/
--------------------------------------------------------

------_=_NextPart_001_01C74BA5.32D88A4C--
joseph_wholey [ Do, 08 Februar 2007 18:18 ] [ ID #1623519 ]

Re: perl DBD and DBI for 64 bit perl

------=_Part_12736_22942316.1170968601525
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
>
>
> Jonathan,
>
> ...and finally, are you aware of a version that points to the 64 bit
> libraries. If not... no big deal... I'll just hack it. And your help and
> responsiveness has been incredible. Better than paid support.
>


Nope - I'm not aware of it (DBD::DB2 isn't my code). Maybe you should
check the very latest version...

http://search.cpan.org/src/IBMTORDB2/DBD-DB2-1.0/Makefile.PL

Looks like it is in there...You can do that just as well as I can, can't
you?

Use the latest version of the code. It often helps.

(Actually, we can debate whether the test is truly correct - it would work
for you because you are using a 64-bit Perl and therefore want the 64-bit
libraries, but if you had a 32-bit Perl, it would still see the 64-bit
libraries and use those, despite the 32-bittiness of Perl.)



Regards, Joe
>
> -----Original Message-----
> *From:* Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
> *Sent:* Thursday, February 08, 2007 2:38 PM
> *To:* Wholey, Joseph (GTI)
> *Cc:* DBD::DB2 Maintenance Team; DBI Users Mailing List
> *Subject:* Re: perl DBD and DBI for 64 bit perl
>
>
>
> On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
> >
> > You are correct... it is a 32 bit file.... bear with me...I'm a little
> > confused by this statement:
> >
> > "You need to distinguish between the database server (which I think your
> > evidence below shows is the case) and the client software used to connect to
> > it." The server in question, is the database server.
> >
>
>
> The parenthetical remark in my sentence wasn't complete - apologies. If
> you ignore that, then I said that you simply need to be aware that the
> application program (eg Perl + DBI + DBD::DB2) uses a client library to
> connect to the database server. It does not include the database server
> code in the client program. And that means that the client program can have
> a different bittiness from the server. What the parenthetical remark should
> have been is "(and I think your evidence below shows that the server is a
> 64-bit server)".
>
>
> Anyway, moving forward, how do I force the compilation of the modules to
> > go to point to the db2 64bit libraries? Do I need to modify the
> > Makefile.pl script? Is there an easier way?
> >
> > Note: the *.1 files are links.
> > [root [at] mphqa1cjs101 lib]# locate libdb2.so
> > /opt/IBM/db2/V8.1/lib/libdb2.so.1
> > /opt/IBM/db2/V8.1/lib/libdb2.so
> > /opt/IBM/db2/V8.1/lib64/libdb2.so.1
> > /opt/IBM/db2/V8.1/lib64/libdb2.so
> >
>
>
> This is the valuable information...You have the 64-bit libraries; you just
> need to persuade Perl to use them.
>
> I don't have the source for DBD::DB2 0.78 on my machine - but I looked at
> 0.76 instead. In Makefile.PL, there is code to the effect:
>
> # libraries required to build DBD::DB2 driver
> if( $os eq 'MSWin32' || $os eq 'MSWin64' || $os eq 'os2' )
> {
> $sysliblist = qq(-L"$DB2/lib" db2cli db2api);
> my [at] libpaths = split /;/, $ENV{'LIB'};
> my $libpath;
> while( [at] libpaths )
> {
> ( $libpath = shift( [at] libpaths) ) =~ s/"//g; # Remove quotes
> $libpath =~ s:\\:/:g;
>
> if( $libpath && $sysliblist !~ /-L"$libpath"/i )
> {
> $sysliblist .= qq( -L"$libpath");
> }
> }
> }
> else
> {
> $sysliblist = "-L$DB2/lib -ldb2";
> }
>
>
> This needs to be modified, I believe, so the last else clause takes into
> account the possibility of a 64-bit Perl. There are various configuration
> items that could be used to identify 64-bit Perl:
>
> $Config{use64bitint}
> $Config{use64bitall}
> $Config{intsize} == 8
> $Config{ptrsize} == 8
>
> So, if some suitable values of these are set, you should change
> $sysliblist to use -L$DB2/lib64
>
> elsif ($Config{ptrsize} == 8)
> {
> $sysliblist = "-L$DB2/lib -ldb2";
> }
>
> With this hacked into Makefile.PL, there's a chance you'll build
> correctly.
>
>
> DBD::DB2 Maintenance Team - please note this suggested change; validate
> and fix for the next release of DBD::DB2. Thanks!
>
>
>
> Thanks again...
> >
> > Regards, Joe
> >
> > -----Original Message-----
> > *From:* Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
> > *Sent:* Thursday, February 08, 2007 1:14 PM
> > *To:* Wholey, Joseph (GTI)
> > *Cc:* DBD::DB2 Maintenance Team; DBI Users Mailing List
> > *Subject:* Re: perl DBD and DBI for 64 bit perl
> >
> >
> >
> > On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com > wrote:
> > >
> > > OK... we're making progress... that is a 64 bit db2... maybe there is
> > > a problem with their libraries. Anyway, what from that error I'd sent you
> > > indicates that it's going against a 32 bit db2 lib? btw... I really
> > > appreciate your help on this.
> > >
> >
> >
> > You need to distinguish between the database server (which I think your
> > evidence below shows is the case) and the client software used to connect to
> > it.
> >
> > The evidence from your build suggests that the client software installed
> > in /opt/IBM/db2/V8.1/lib
> > (the libdb2.so file in there) is a 32-bit library. You can confirm that
> > by running the 'file' command on it.
> >
> > For example:
> >
> > Anubis JL: cd /usr/lib
> > Anubis JL: file libc.so
> > libc.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically
> > linked, not stripped
> > Anubis JL: cd sparcv9
> > Anubis JL: file libc.so
> > libc.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1,
> > dynamically linked, not stripped
> > Anubis JL:
> >
> > Assuming that this is the problem, you will either need to install the
> > 64-bit client software - probably in a separate location so you don't break
> > the existing code that uses the 32-bit software (though I'm not sure how
> > easily you can do that with DB2) - or you have to use a 32-bit Perl and
> > 32-bit DBI to build a 32-bit DBD::DB2 using the 32-bit DB2 client libraries.
> >
> >
> > If this is not the problem, then we need to understand why GCC is
> > refusing to play with the libdb2.so library in /opt/IBM/...
> >
> >
> > rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>exit
> > > [root [at] mphqa1cjs101 DBD_DBI]# su - rpcjq
> > > mphqa1cjs101
> > >
> > > ############################################################
> > > *** db2instance ---> rpcjq
> > > *** db2dbdft ---> DBRPCJ
> > > *** schema ---> RPCJQ
> > > *** UNIX ID ---> rpcjq
> > > ############################################################
> > >
> > > rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>db2level
> > > DB21085I Instance "rpcjq" uses "64" bits and DB2 code release
> > > "SQL08025" with
> > > level identifier "03060106".
> > > Informational tokens are "DB2 v8.1.3.112", "s060429", "MI00159", and
> > > FixPak
> > > "12".
> > > Product is installed at "/opt/IBM/db2/V8.1".
> > >
> > >
> > > -----Original Message-----
> > > *From:* Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
> > > *Sent:* Thursday, February 08, 2007 11:30 AM
> > > *To:* Wholey, Joseph (GTI)
> > > *Cc:* dbi-users [at] perl.org
> > > *Subject:* Re: perl DBD and DBI for 64 bit perl
> > >
> > >
> > > On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:
> > >
> > > I'm really in a pinch here:
> > > >
> > > > Here's the error I get when I try to compile the DBD:. Can you help
> > > > me out here. Below you'll find my level of Perl and the dbd and dbi
> > > > versions I'm attempting to install.
> > > >
> > > > gcc -shared DB2.o dbdimp.o -o blib/arch/auto/DBD/DB2/DB2.so
> > > > -L/opt/IBM/db2/V8.1/lib -ldb2
> > > > /usr/bin/ld: skipping incompatible /opt/IBM/db2/V8.1/lib/libdb2.so
> > > > when searching for -ldb2
> > > >
> > >
> > >
> > > Well, it looks like the DB2 client software you have is probably a
> > > 32-bit version, so GCC is quite correctly not linking your 64-bit DBD::DB2
> > > module with the 32-bit DB2 client software -- it wouldn't work even if it
> > > tried.
> > >
> > > You have two options:
> > > * Find, install, use a 64-bit DB2 client library.
> > > * Recompile Perl, DBI and then DBD::DB2 as 32-bit code to use the
> > > 32-bit DB2 client.
> > >
> > > Both would work - which is better for you depends on whether you can
> > > find a 64-bit DB2 client library.
> > >
> > >
> > > /usr/bin/ld: cannot find -ldb2
> > > > collect2: ld returned 1 exit status
> > > > make: *** [blib/arch/auto/DBD/DB2/DB2.so] Error 1
> > > > [root [at] mphqa1cjs101 DBD-DB2-0.78]#
> > > >
> > > >
> > > > Here are the versions I'm trying to compile as well as the perl
> > > > version.
> > > >
> > > > DBI-1.51
> > > > DBD-DB2-0.78
> > > >
> > > > [root [at] mphqa1cjs101 DBD-DB2-0.78]# perl -v
> > > >
> > > > This is perl, v5.8.5 built for x86_64-linux-thread-multi
> > > >
> > >
>
> --
> Jonathan Leffler <jonathan.leffler [at] gmail.com> #include <disclaimer.h>
> Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
> "I don't suffer from insanity - I enjoy every minute of it."
>
> ------------------------------
> If you are not an intended recipient of this e-mail, please notify the
> sender, delete it and do not read, act upon, print, disclose, copy, retain
> or redistribute it. Click here <http://www.ml.com/email_terms/>for
> important additional terms relating to this e-mail.
> http://www.ml.com/email_terms/
> ------------------------------
>



--
Jonathan Leffler <jonathan.leffler [at] gmail.com> #include <disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."

------=_Part_12736_22942316.1170968601525--
jonathan.leffler [ Do, 08 Februar 2007 22:03 ] [ ID #1623520 ]

RE: perl DBD and DBI for 64 bit perl

------_=_NextPart_001_01C74B98.A048EA16
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Jonathon,

I'm really in a pinch here:

Here's the error I get when I try to compile the DBD:. Can you help me
out here. Below you'll find my level of Perl and the dbd and dbi
versions I'm attempting to install.

gcc -shared DB2.o dbdimp.o -o blib/arch/auto/DBD/DB2/DB2.so
-L/opt/IBM/db2/V8.1/lib -ldb2
/usr/bin/ld: skipping incompatible /opt/IBM/db2/V8.1/lib/libdb2.so when
searching for -ldb2
/usr/bin/ld: cannot find -ldb2
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/DBD/DB2/DB2.so] Error 1
[root [at] mphqa1cjs101 DBD-DB2-0.78]#


Here are the versions I'm trying to compile as well as the perl version.


DBI-1.51
DBD-DB2-0.78

[root [at] mphqa1cjs101 DBD-DB2-0.78]# perl -v

This is perl, v5.8.5 built for x86_64-linux-thread-multi

Copyright 1987-2004, Larry Wall

Any help would be greatly appreciated.



-----Original Message-----
From: Wholey, Joseph (GTI)
Sent: Monday, February 05, 2007 8:38 PM
To: 'Jonathan Leffler'
Cc: dbi-users [at] perl.org
Subject: RE: perl DBD and DBI for 64 bit perl
=09
=09

I need perl dbd and dbi 64 bit for Red Hat Linux version 4.

-----Original Message-----
From: Jonathan Leffler
[mailto:jonathan.leffler [at] gmail.com]
Sent: Monday, February 05, 2007 6:56 PM
To: Wholey, Joseph (GTI)
Cc: dbi-users [at] perl.org
Subject: Re: perl DBD and DBI for 64 bit perl
=09
=09


On 2/5/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com>
wrote:
=09

I'm trying to track down DBD and DBI for 64 bit
perl. Does it exist?
If so, can you point me in the right direction?
=09


What are you seeking?
It exists if you compile it.
Do you need help compiling a 64-bit Perl?
Compiling DBI with your pre-built 64-bit Perl?
Do you want a pre-built 64-bit Perl?
If so, for which platform? The version I have on
Solaris 8 may not be all that much use to you.
=09
--
Jonathan Leffler < jonathan.leffler [at] gmail.com> #include
<disclaimer.h>
Guardian of DBD::Informix - v2005.02 -
http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of
it."
--------------------------------------------------------

If you are not an intended recipient of this e-mail, please notify the =
sender, delete it and do not read, act upon, print, disclose, copy, =
retain or redistribute it. Click here for important additional terms =
relating to this e-mail. http://www.ml.com/email_terms/
--------------------------------------------------------

------_=_NextPart_001_01C74B98.A048EA16--
joseph_wholey [ Do, 08 Februar 2007 16:48 ] [ ID #1623521 ]

RE: perl DBD and DBI for 64 bit perl

------_=_NextPart_001_01C74BAF.8FD6DB72
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Jonathan (sorry about that)

You are correct... it is a 32 bit file.... bear with me...I'm a little
confused by this statement:

"You need to distinguish between the database server (which I think your
evidence below shows is the case) and the client software used to
connect to it." The server in question, is the database server.

Anyway, moving forward, how do I force the compilation of the modules to
go to point to the db2 64bit libraries? Do I need to modify the
Makefile.pl script? Is there an easier way?

Note: the *.1 files are links.
[root [at] mphqa1cjs101 lib]# locate libdb2.so
/opt/IBM/db2/V8.1/lib/libdb2.so.1
/opt/IBM/db2/V8.1/lib/libdb2.so
/opt/IBM/db2/V8.1/lib64/libdb2.so.1
/opt/IBM/db2/V8.1/lib64/libdb2.so

Thanks again...

Regards, Joe

-----Original Message-----
From: Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
Sent: Thursday, February 08, 2007 1:14 PM
To: Wholey, Joseph (GTI)
Cc: DBD::DB2 Maintenance Team; DBI Users Mailing List
Subject: Re: perl DBD and DBI for 64 bit perl
=09
=09


On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com > wrote:

Jonathon,


Dear Joseph,
=09
My name is JonathAn - please!
=09


OK... we're making progress... that is a 64 bit db2...
maybe there is a problem with their libraries. Anyway, what from that
error I'd sent you indicates that it's going against a 32 bit db2 lib?
btw... I really appreciate your help on this.



You need to distinguish between the database server (which I
think your evidence below shows is the case) and the client software
used to connect to it.
=09
The evidence from your build suggests that the client software
installed in /opt/IBM/db2/V8.1/lib
(the libdb2.so file in there) is a 32-bit library. You can
confirm that by running the 'file' command on it.
=09
For example:
=09
Anubis JL: cd /usr/lib
Anubis JL: file libc.so
libc.so: ELF 32-bit MSB dynamic lib SPARC Version 1,
dynamically linked, not stripped
Anubis JL: cd sparcv9
Anubis JL: file libc.so
libc.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1,
dynamically linked, not stripped
Anubis JL:
=09
Assuming that this is the problem, you will either need to
install the 64-bit client software - probably in a separate location so
you don't break the existing code that uses the 32-bit software (though
I'm not sure how easily you can do that with DB2) - or you have to use a
32-bit Perl and 32-bit DBI to build a 32-bit DBD::DB2 using the 32-bit
DB2 client libraries.
=09
If this is not the problem, then we need to understand why GCC
is refusing to play with the libdb2.so library in /opt/IBM/...
=09
=09


rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>exit
[root [at] mphqa1cjs101 DBD_DBI]# su - rpcjq
mphqa1cjs101

=09
############################################################
*** db2instance ---> rpcjq
*** db2dbdft ---> DBRPCJ
*** schema ---> RPCJQ
*** UNIX ID ---> rpcjq
=09
############################################################

rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>db2level
DB21085I Instance "rpcjq" uses "64" bits and DB2 code
release "SQL08025" with
level identifier "03060106".
Informational tokens are "DB2 v8.1.3.112", "s060429",
"MI00159", and FixPak
"12".
Product is installed at "/opt/IBM/db2/V8.1".


-----Original Message-----
From: Jonathan Leffler
[mailto:jonathan.leffler [at] gmail.com]
Sent: Thursday, February 08, 2007 11:30 AM
To: Wholey, Joseph (GTI)
Cc: dbi-users [at] perl.org
Subject: Re: perl DBD and DBI for 64 bit perl
=09
=09
=09
=09
On 2/8/07, Wholey, Joseph (GTI)
<joseph_wholey [at] ml.com> wrote:


Jonathon,



Dear Josaph :-)


Hint given - not noticed :-(
=09
=09

=09

I'm really in a pinch here:

Here's the error I get when I try to
compile the DBD:. Can you help me out here. Below you'll find my level
of Perl and the dbd and dbi versions I'm attempting to install.

gcc -shared DB2.o dbdimp.o -o
blib/arch/auto/DBD/DB2/DB2.so -L/opt/IBM/db2/V8.1/lib -ldb2
/usr/bin/ld: skipping incompatible
/opt/IBM/db2/V8.1/lib/libdb2.so when searching for -ldb2



Well, it looks like the DB2 client software you
have is probably a 32-bit version, so GCC is quite correctly not linking
your 64-bit DBD::DB2 module with the 32-bit DB2 client software -- it
wouldn't work even if it tried.
=09
You have two options:
* Find, install, use a 64-bit DB2 client
library.
* Recompile Perl, DBI and then DBD::DB2 as
32-bit code to use the 32-bit DB2 client.
=09
Both would work - which is better for you
depends on whether you can find a 64-bit DB2 client library.

=09


/usr/bin/ld: cannot find -ldb2
collect2: ld returned 1 exit status
make: ***
[blib/arch/auto/DBD/DB2/DB2.so] Error 1
[root [at] mphqa1cjs101 DBD-DB2-0.78]#


Here are the versions I'm trying to
compile as well as the perl version.

DBI-1.51
DBD-DB2-0.78

[root [at] mphqa1cjs101 DBD-DB2-0.78]# perl
-v

This is perl, v5.8.5 built for
x86_64-linux-thread-multi


--
Jonathan Leffler < jonathan.leffler [at] gmail.com
<mailto:jonathan.leffler [at] gmail.com> > #include <disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."
--------------------------------------------------------

If you are not an intended recipient of this e-mail, please notify the =
sender, delete it and do not read, act upon, print, disclose, copy, =
retain or redistribute it. Click here for important additional terms =
relating to this e-mail. http://www.ml.com/email_terms/
--------------------------------------------------------

------_=_NextPart_001_01C74BAF.8FD6DB72--
joseph_wholey [ Do, 08 Februar 2007 19:33 ] [ ID #1623522 ]

RE: perl DBD and DBI for 64 bit perl

------_=_NextPart_001_01C74BC3.3F5FEF8A
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Jonathan,

....and finally, are you aware of a version that points to the 64 bit
libraries. If not... no big deal... I'll just hack it. And your help
and responsiveness has been incredible. Better than paid support.

Regards, Joe

-----Original Message-----
From: Jonathan Leffler [mailto:jonathan.leffler [at] gmail.com]
Sent: Thursday, February 08, 2007 2:38 PM
To: Wholey, Joseph (GTI)
Cc: DBD::DB2 Maintenance Team; DBI Users Mailing List
Subject: Re: perl DBD and DBI for 64 bit perl
=09
=09


On 2/8/07, Wholey, Joseph (GTI) <joseph_wholey [at] ml.com> wrote:

You are correct... it is a 32 bit file.... bear with
me...I'm a little confused by this statement:

"You need to distinguish between the database server
(which I think your evidence below shows is the case) and the client
software used to connect to it." The server in question, is the
database server.



The parenthetical remark in my sentence wasn't complete -
apologies. If you ignore that, then I said that you simply need to be
aware that the application program (eg Perl + DBI + DBD::DB2) uses a
client library to connect to the database server. It does not include
the database server code in the client program. And that means that the
client program can have a different bittiness from the server. What the
parenthetical remark should have been is "(and I think your evidence
below shows that the server is a 64-bit server)".
=09
=09


Anyway, moving forward, how do I force the compilation
of the modules to go to point to the db2 64bit libraries? Do I need to
modify the Makefile.pl script? Is there an easier way?

Note: the *.1 files are links.
[root [at] mphqa1cjs101 lib]# locate libdb2.so
/opt/IBM/db2/V8.1/lib/libdb2.so.1
/opt/IBM/db2/V8.1/lib/libdb2.so
/opt/IBM/db2/V8.1/lib64/libdb2.so.1
/opt/IBM/db2/V8.1/lib64/libdb2.so



This is the valuable information...You have the 64-bit
libraries; you just need to persuade Perl to use them.
=09
I don't have the source for DBD::DB2 0.78 on my machine - but I
looked at 0.76 instead. In Makefile.PL, there is code to the effect:
=09
# libraries required to build DBD::DB2 driver
if( $os eq 'MSWin32' || $os eq 'MSWin64' || $os eq 'os2' )
{
$sysliblist =3D qq(-L"$DB2/lib" db2cli db2api);
my [at] libpaths =3D split /;/, $ENV{'LIB'};
my $libpath;
while( [at] libpaths )
{
( $libpath =3D shift( [at] libpaths) ) =3D~ s/"//g; # Remove quotes
$libpath =3D~ s:\\:/:g;
=09
if( $libpath && $sysliblist !~ /-L"$libpath"/i )
{
$sysliblist .=3D qq( -L"$libpath");
}
}
}
else
{
$sysliblist =3D "-L$DB2/lib -ldb2";
}
=09
=09
This needs to be modified, I believe, so the last else clause
takes into account the possibility of a 64-bit Perl. There are various
configuration items that could be used to identify 64-bit Perl:
=09
$Config{use64bitint}
$Config{use64bitall}
$Config{intsize} =3D=3D 8
$Config{ptrsize} =3D=3D 8
=09
So, if some suitable values of these are set, you should change
$sysliblist to use -L$DB2/lib64
=09
elsif ($Config{ptrsize} =3D=3D 8)
{
$sysliblist =3D "-L$DB2/lib -ldb2";
}
=09
With this hacked into Makefile.PL, there's a chance you'll build
correctly.
=09
=09
DBD::DB2 Maintenance Team - please note this suggested change;
validate and fix for the next release of DBD::DB2. Thanks!
=09
=09
=09


Thanks again...

Regards, Joe

-----Original Message-----
From: Jonathan Leffler
[mailto:jonathan.leffler [at] gmail.com]
Sent: Thursday, February 08, 2007 1:14 PM
To: Wholey, Joseph (GTI)
=09
Cc: DBD::DB2 Maintenance Team; DBI Users Mailing
List
Subject: Re: perl DBD and DBI for 64 bit perl
=09
=09
=09
=09
=09
On 2/8/07, Wholey, Joseph (GTI)
<joseph_wholey [at] ml.com > wrote:

OK... we're making progress... that is a
64 bit db2... maybe there is a problem with their libraries. Anyway,
what from that error I'd sent you indicates that it's going against a 32
bit db2 lib? btw... I really appreciate your help on this.



You need to distinguish between the database
server (which I think your evidence below shows is the case) and the
client software used to connect to it.
=09
The evidence from your build suggests that the
client software installed in /opt/IBM/db2/V8.1/lib
(the libdb2.so file in there) is a 32-bit
library. You can confirm that by running the 'file' command on it.
=09
For example:
=09
Anubis JL: cd /usr/lib
Anubis JL: file libc.so
libc.so: ELF 32-bit MSB dynamic lib SPARC
Version 1, dynamically linked, not stripped
Anubis JL: cd sparcv9
Anubis JL: file libc.so
libc.so: ELF 64-bit MSB dynamic lib
SPARCV9 Version 1, dynamically linked, not stripped
Anubis JL:
=09
Assuming that this is the problem, you will
either need to install the 64-bit client software - probably in a
separate location so you don't break the existing code that uses the
32-bit software (though I'm not sure how easily you can do that with
DB2) - or you have to use a 32-bit Perl and 32-bit DBI to build a 32-bit
DBD::DB2 using the 32-bit DB2 client libraries.
=09
If this is not the problem, then we need to
understand why GCC is refusing to play with the libdb2.so library in
/opt/IBM/...
=09
=09


rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>exit
[root [at] mphqa1cjs101 DBD_DBI]# su - rpcjq
mphqa1cjs101

=09
############################################################
*** db2instance ---> rpcjq
*** db2dbdft ---> DBRPCJ
*** schema ---> RPCJQ
*** UNIX ID ---> rpcjq
=09
############################################################

=09
rpcjq-mphqa1cjs101;/rpcjqhome/rpcjq>db2level
DB21085I Instance "rpcjq" uses "64"
bits and DB2 code release "SQL08025" with
level identifier "03060106".
Informational tokens are "DB2
v8.1.3.112", "s060429", "MI00159", and FixPak
"12".
Product is installed at
"/opt/IBM/db2/V8.1".


-----Original Message-----
From: Jonathan Leffler
[mailto:jonathan.leffler [at] gmail.com]
Sent: Thursday, February 08, 2007 11:30
AM
To: Wholey, Joseph (GTI)
Cc: dbi-users [at] perl.org
Subject: Re: perl DBD and DBI for 64 bit
perl
=09
=09
=09
=09
On 2/8/07, Wholey, Joseph (GTI)
<joseph_wholey [at] ml.com> wrote:

=09

I'm really in a pinch here:

Here's the error I get when I try to
compile the DBD:. Can you help me out here. Below you'll find my level
of Perl and the dbd and dbi versions I'm attempting to install.

gcc -shared DB2.o dbdimp.o -o
blib/arch/auto/DBD/DB2/DB2.so -L/opt/IBM/db2/V8.1/lib -ldb2
/usr/bin/ld: skipping incompatible
/opt/IBM/db2/V8.1/lib/libdb2.so when searching for -ldb2



Well, it looks like the DB2 client
software you have is probably a 32-bit version, so GCC is quite
correctly not linking your 64-bit DBD::DB2 module with the 32-bit DB2
client software -- it wouldn't work even if it tried.
=09
You have two options:
* Find, install, use a 64-bit DB2 client
library.
* Recompile Perl, DBI and then DBD::DB2
as 32-bit code to use the 32-bit DB2 client.
=09
Both would work - which is better for
you depends on whether you can find a 64-bit DB2 client library.

=09


/usr/bin/ld: cannot find -ldb2
collect2: ld returned 1 exit status
make: ***
[blib/arch/auto/DBD/DB2/DB2.so] Error 1
[root [at] mphqa1cjs101 DBD-DB2-0.78]#


Here are the versions I'm trying to
compile as well as the perl version.

DBI-1.51
DBD-DB2-0.78

[root [at] mphqa1cjs101 DBD-DB2-0.78]# perl
-v

This is perl, v5.8.5 built for
x86_64-linux-thread-multi



--
Jonathan Leffler <jonathan.leffler [at] gmail.com> #include
<disclaimer.h>
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."
--------------------------------------------------------

If you are not an intended recipient of this e-mail, please notify the =
sender, delete it and do not read, act upon, print, disclose, copy, =
retain or redistribute it. Click here for important additional terms =
relating to this e-mail. http://www.ml.com/email_terms/
--------------------------------------------------------

------_=_NextPart_001_01C74BC3.3F5FEF8A--
joseph_wholey [ Do, 08 Februar 2007 21:53 ] [ ID #1623524 ]
Perl » perl.dbi.users » perl DBD and DBI for 64 bit perl

Vorheriges Thema: collecting the data for dependancy each of perl module such as dbi.
Nächstes Thema: DBD::Oracle on Solaris 10 and Oracle 10g