Re: ANNOUNCE: DBD::Sybase 1.08
[email protected] Mon, 7 May 2007 14:11:37 +0200
| Newsgroups | gmane.comp.lang.perl.modules.dbi.sybase |
|---|---|
| Message-ID | <OFF63F0ADD.3EDAACE1-ONC12572D4.0042C197-C12572D4.0042FB65@bnpparibas.com> |
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 [email protected]@peppler.org - 07.05.2007 14:00 Sent by: [email protected] 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 <[email protected]> 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.