PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: michael dot peppler at bnpparibas dot com
Subject: Re: ANNOUNCE: DBD::Sybase 1.08
Date: May 7 2007 12:11PM

The reason for the problem is simple.

On AMD64 perl is built in 64bit mode - you therefore need the 64bit OCS 
libraries (libcs64.so, etc). These are available from Sybase either by 
purchasing the x86-64 SDK, or an x86-64 version of ASE. I believe that the 
Developer Edition of ASE for x86-64 is available from eshop for a 
reasonable fee (about 200 Euros or so).

Alternatively, rebuild perl in 32bit mode.

Michael





Internet
knb@gfz-potsdam.de@peppler.org - 07.05.2007 14:00
 
Sent by:        owner-sybperl-l@peppler.org
To:     sybperl-l
cc: 
Subject:        Re: ANNOUNCE: DBD::Sybase 1.08

Hello Michael,

just some feedback. No answer needed on this mail. I am posting this to
provide an entry for the mailing list archive...maybe this will help
another user a little bit, somehow.

DBD::Sybase still does not compile on amd64, ASE 15 client libs. Can't
install DBD::Sybase on amd64 by means of CPAN/shell get and CPAN/shell
test. Please see info below.

Instead, after unsuccessfully trying to install via CPAN, I have managed
to find a DBD::Sybase module that works by installing the  freetds-based
"libdbd-sybase-perl" package that comes with the Ubuntu distribution.

However, I have no clear idea why it works, and what its capabilities
and bugs are.

Best regards,
Knut


#####################################

libdbd-sybase-perl
Sybase/MS SQL database driver for the DBI module
Package maintainer: Steve Langasek 

When I install it and run
perl -MDBI -e '$dbh = DBI->connect("dbi:Sybase:SYBASE_MYSERVER", "sa",
"secret"); print "$dbh->{syb_oc_version}\n";'
freetds v0.63

ldd /usr/lib/perl5/auto/DBD/Sybase/Sybase.so
libct.so.3 => /usr/lib/libct.so.3 (0x00002b7b4f429000)
libtds.so.4 => /usr/lib/libtds.so.4 (0x00002b7b4f568000)
libdl.so.2 => /lib/libdl.so.2 (0x00002b7b4f69d000)
libm.so.6 => /lib/libm.so.6 (0x00002b7b4f7a1000)
libc.so.6 => /lib/libc.so.6 (0x00002b7b4f922000)
/lib64/ld-linux-x86-64.so.2 (0x0000555555554000)


head /proc/version
Linux version 2.6.17-11-generic (root@king) (gcc version 4.1.2 20060928
(prerelease) (Ubuntu 4.1.1-13ubuntu5)) #2 SMP Tue Mar 13 22:06:20 UTC
2007 (Ubuntu 2.6.17-11.37-generic

perl -v
This is perl, v5.8.8 built for x86_64-linux-gnu-thread-multi

print "$DBI::VERSION\n";'
1.53

print "$DBD::Sybase::VERSION\n";'
1.00

################
DBD::Sybase 1.08 installation:


make test

cc -c  -I/opt/sybase/OCS-15_0/include -DSYB_LP64
-I/usr/local/lib/perl/5.8.8/auto/DBI -D_REENTRANT -D_GNU_SOURCE
-DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2
-DVERSION=\"1.08\" -DXS_VERSION=\"1.08\" -fPIC
"-I/usr/lib/perl/5.8/CORE"   Sybase.c
rm -f blib/arch/auto/DBD/Sybase/Sybase.so
LD_RUN_PATH="/opt/sybase/OCS-15_0/lib" cc  -L/opt/sybase/OCS-15_0/lib
-shared -L/usr/local/lib Sybase.o dbdimp.o  -o
blib/arch/auto/DBD/Sybase/Sybase.so       \
-L/opt/sybase/OCS-15_0/lib -lsybct -lsybcs -lsybtcl -lsybcomn
-lsybintl -lsybblk -ldl -lm    \

/usr/bin/ld: skipping incompatible /opt/sybase/OCS-15_0/lib/libsybct.so
when searching for -lsybct
/usr/bin/ld: skipping incompatible /opt/sybase/OCS-15_0/lib/libsybct.a
when searching for -lsybct
/usr/bin/ld: skipping incompatible /opt/sybase/OCS-15_0/lib/libsybct.so
when searching for -lsybct
/usr/bin/ld: skipping incompatible /opt/sybase/OCS-15_0/lib/libsybct.a
when searching for -lsybct
/usr/bin/ld: cannot find -lsybct
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/DBD/Sybase/Sybase.so] Error 1
/usr/bin/make -j3 -- NOT OK
Running make test
Can't test without successful make
Failed during this command:
MEWP/DBD-Sybase-1.08.tar.gz                  : make NO

################
(Although, it would be nice if the library incompatibility problems
mentioned below were solved...is it just some compiler switch I should
change/add?).


Michael Peppler wrote:
> I've just released DBD::Sybase 1.08 to CPAN. This a bug fix and
> performance enhancement release.
>
> I'd like to thank Tim Bunce for his help with this release.
>
> From the CHANGES file:
>
> Release 1.08
>
>     Detect missing libblk.a library, and disable the BLK api calls
>     if necessary.
>     Added code to force dlopen() to use RTLD_GLOBAL.
>     Corrected ct_option() functionality detection.
>     Fixed incorrect handling of bind_params() (Thanks to Tim Bunce).
>     Added serverType DSN parameter.
>     Added tds_keepalive DSN parameter.
>     Fixed incorrect handling of multiple result sets with DBI
>     1.53 and later.
>     Re-wrote $dbh->ping() in C, it's now four times faster.
>     Allow automated build without prompts.
>     Improved nsql().
>     Added corrected handling of DATE and TIME values (ASE 12.5.2 and
> later).
>     Added handling of UNSIGNED INT and BIGINT (ASE 15 and later).
>     Added PERL_NO_GET_CONTEXT #define.
>
>         Bug Fixes
>
>     624 - Empty strings incorrectly passed as NULL.
>     616 - Spurious error message when the login request times out.
>     614 - Documentation improvement for syb_xxx methods.
>     610 - Segfault when using signals with the threaded libraries and
>           perl >= 5.8.
>
>
> As always, bug fixes, comments, etc. are welcome!
>
> Michael


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.