I figured out why I had trouble compiling the DBD against a 64 bit
sybase_OCS (sybase 15) on a 64 bit platform (EM64T) and against a 32 bit
sybase_OCS (sybase 15) on a 32 bit platform (i386). I am using Redhat
ES4, update 4 for each platform. My updates are current. I was using
DBI 1.5 and DBD 1_07_1.
I will share this with you in the hope it might help out another. In
order to set the sybase env variables, I had sourced a copy of the
SYBASE.sh file in the .bash_profile file in each each users home
directory. While this was sufficient to create most of the needed
variables for the terminal, (ie $SYBASE, $SYBASE_ASE. etc), for some
reason, the $LD_LIBRARY_PATH was left empty. By swithing the source
file syntax to the last line of the .bashrc file, the $LD_LIBRARY_PATH
was retained (when the teminal window opens, the value was there) I
could not figure out why this happens, but it does.
Once I resolved this issue, (ie, the process doing the make, make test
had the appropriate $LD_LIBRARY_PATH values), the install went without a
hitch.
Alternatively, I could have placed these values in the ld.so.conf file;
however, on my EM64t machine, I have both a 32 bit sybase server
installation and a 64 ocs (SDK) installation. I let sybase use the 32
bit server installation, other users are pointed to the 64 bit SDK.
Thus, setting the appropriate (alternative) varables for the process
being launched seemed the beter way to go.
I am not sure if doing a static install would have made a difference. I
am not completely sure of all the consequences to using this option.
Thanks for your help,
terry
Terence J. Young, D.C. wrote:
I had tried that; I loaded the 64 bit OCS libs and retried the build;
This eliminated any obvious errors from the make, but the make test
failed miserably.
I then did a clean install of ocs for sybase 15 and applied the latest
64 bit ebf over that; I appled the DBD install and it worked. I am
not sure what happened here.
Thanks.
I also have a 32 linux redhat, update 4 running on a i686 platform
(this is not 64 bit; but 32 bit) I am runnng 32 bit sybase 15.0 on
that system. the make works, but the make test fails. I will try
doing a clean install of the ocs component and see what happens. I
will get back to you.
[EMAIL PROTECTED] wrote:
You are trying to link 32bit code with 64bit code. You either need to
get
the 64bit version of the Sybase client libraries, or rebuild perl in
32bit
mode.
Michael
Extranet
[EMAIL PROTECTED] - 09/09/2006 00:48
To: dbi-users
cc:
Subject: trouble loading DBD sybase, 1_07_01
Hi,
I am trying to load DBD sybase on linux
I am using RedHat 4, update 4 for x64_68 platform on an EM_64T machine.
My updates are current.
I am tying to load DBDSybase 1_07_01 (1_07 didn't work either)
I am running a 32 bit version of sybase. I tried loading a 64 version
of the middleware..this just created different errors.
Here is the terminal output of pearl Makefile.pl and make..
[EMAIL PROTECTED] DBD_install]$ cd DBD-Sybase-1.07_01
[EMAIL PROTECTED] DBD-Sybase-1.07_01]$ ls
BUGS dbdimp.h Makefile.PL README Sybase.pm
CHANGES dbd-sybase.pod MANIFEST README.freetds Sybase.xs
CONFIG dbivport.h META.yml README.vms t
dbdimp.c eg PWD.factory Sybase.h
[EMAIL PROTECTED] DBD-Sybase-1.07_01]$ perl Makefile.PL
Sybase OpenClient 15.0 found.
By default DBD::Sybase 1.05 and later use the 'CHAINED' mode (where
available)
when 'AutoCommit' is turned off. Versions 1.04 and older instead managed
the transactions explicitly with a 'BEGIN TRAN' before the first DML
statement. Using the 'CHAINED' mode is preferable as it is the way that
Sybase implements AutoCommit handling for both its ODBC and JDBC
drivers.
Use 'CHAINED' mode by default (Y/N) [Y]: N
Running in threaded mode - looking for _r libraries...
Found -lsybct_r for -lsybct
Found -lsybcs_r for -lsybcs
Found -lsybtcl_r for -lsybtcl
Found -lsybcomn_r for -lsybcomn
Found -lsybintl_r for -lsybintl
Found -lsybblk_r for -lsybblk
Running in 64bit mode - looking for '64' libraries...
BLK api available - found: sybblk_r
The DBD::Sybase module need access to a Sybase server to run the tests.
To clear an entry please enter 'undef'
Sybase server to use (default: SYBASE): xxxx
User ID to log in to Sybase (default: sa): xxxx
Password (default: undef): xxxxx
Sybase database to use on sa (default: undef): xxxxx
* Writing login information, including password, to file PWD.
Checking if your kit is complete...
Looks good
Multiple copies of Driver.xst found in:
/usr/lib64/perl5/site_perl/5.8.5/x86_64- linux-thread-multi/auto/DBI/
/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thr ead-multi/auto/DBI/
at Makefile.PL line 59
Using DBI 1.50 (for perl 5.008005 on x86_64-linux-thread-multi)
installed in /us
r/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/auto/DBI/
Writing Makefile for DBD::Sybase
[EMAIL PROTECTED] DBD-Sybase-1.07_01]$ make
cp dbd-sybase.pod blib/lib/DBD/dbd-sybase.pod
cp Sybase.pm blib/lib/DBD/Sybase.pm
/usr/bin/perl -p -e "s/~DRIVER~/Sybase/g"
/usr/lib64/perl5/site_perl/5.8.5/x86_6
4-linux-thread-multi/auto/DBI//Driver.xst > Sybase.xsi
/usr/bin/perl /usr/lib/perl5/5.8.5/ExtUtils/xsubpp -typemap
/usr/lib/perl5/5.8. 5/ExtUtils/typemap Sybase.xs > Sybase.xsc && mv
Sybase.xsc Sybase.c
gcc -c -I/opt/sybase_15_0_1/OCS-15_0/include -DNO_CHAINED_TRAN=1
-DSYB_LP64 -I/
usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/auto/DBI
-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe
-I/usr/local/include -D_LAR GEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/include/gdbm -O2 -g -pipe -m64 -DV ERSION=\"1.07_01\"
-DXS_VERSION=\"1.07_01\" -fPIC "-I/usr/lib64/perl5/5.8.5/x86_
64-linux-thread-multi/CORE" Sybase.c
gcc -c -I/opt/sybase_15_0_1/OCS-15_0/include -DNO_CHAINED_TRAN=1
-DSYB_LP64 -I/
usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/auto/DBI
-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe
-I/usr/local/include -D_LAR GEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/include/gdbm -O2 -g -pipe -m64 -DV ERSION=\"1.07_01\"
-DXS_VERSION=\"1.07_01\" -fPIC "-I/usr/lib64/perl5/5.8.5/x86_
64-linux-thread-multi/CORE" dbdimp.c
dbdimp.c: In function `_dbd_rebind_ph':
dbdimp.c:4807: warning: passing arg 2 of `to_binary' from incompatible
pointer t ype
Running Mkbootstrap for DBD::Sybase ()
chmod 644 Sybase.bs
rm -f blib/arch/auto/DBD/Sybase/Sybase.so
gcc -L/opt/sybase_15_0_1/OCS-15_0/lib -shared Sybase.o dbdimp.o -o
blib/arch/a uto/DBD/Sybase/Sybase.so -L/opt/sybase_15_0_1/OCS-15_0/lib
-lsybct_r -lsybcs_r -lsybtcl_r -lsybcomn_r -lsybintl_r -lsybblk_r
-ldl -lm
/usr/bin/ld: skipping incompatible
/opt/sybase_15_0_1/OCS-15_0/lib/libsybct_r.so when searching for
-lsybct_r
/usr/bin/ld: skipping incompatible
/opt/sybase_15_0_1/OCS-15_0/lib/libsybct_r.a when searching for
-lsybct_r
/usr/bin/ld: skipping incompatible
/opt/sybase_15_0_1/OCS-15_0/lib/libsybct_r.so when searching for
-lsybct_r
/usr/bin/ld: skipping incompatible
/opt/sybase_15_0_1/OCS-15_0/lib/libsybct_r.a when searching for
-lsybct_r
/usr/bin/ld: cannot find -lsybct_r
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/DBD/Sybase/Sybase.so] Error 1
Any Ideas??
This message and any attachments (the "message") is
intended solely for the addressees and is confidential. If you
receive this message in error, please delete it and immediately
notify the sender. Any use not in accord with its purpose, any
dissemination or disclosure, either whole or partial, is prohibited
except formal approval. The internet
can not guarantee the integrity of this message. BNP PARIBAS (and its
subsidiaries) shall (will) not therefore be liable for the message if
modified.
---------------------------------------------
Ce message et toutes les pieces jointes (ci-apres le "message") sont
etablis a l'intention exclusive de ses destinataires et sont
confidentiels. Si vous recevez ce message par erreur, merci de le
detruire et d'en avertir immediatement l'expediteur. Toute
utilisation de ce message non conforme a sa destination, toute
diffusion ou toute publication, totale ou partielle, est interdite,
sauf autorisation expresse. L'internet ne permettant pas d'assurer
l'integrite de ce message, BNP PARIBAS (et ses
filiales) decline(nt) toute responsabilite au titre de ce message,
dans l'hypothese ou il aurait ete modifie.