|
|
sybperl-l Archive
Up Prev Next
From: "Jason L dot Froebe" <jason at froebe dot net>
Subject: Re: ANNOUNCE: DBD::Sybase 1.08
Date: May 7 2007 6:07PM
DBD::Sybase shouldn't be compiled on Linux x86-64 using the reentrant
libraries. It will segfault on certain signals. This is due to a bug
with 64bit perl and not DBD::Sybase.
So, use the non-reentrant libraries.
jason
--- Stefan Karlsson wrote:
> The libraries specified are the 32-bit libraries:
> -lsybct -lsybcs -lsybtcl -lsybcomn -lsybintl -lsybblk
>
> Use the 64-bit versions:
> sybct64, sybcs64, sybblk64
>
> Also, note that the thread-safe versions of the libraries are named
> _r,
> e.g: sybct_r64
>
> I'm really completely oblivious to what the DBD module needs so this
> is
> in no way authoritative advise, but for client applications you only
> need to specify sybct and sybcs with 15.0. For Bulk Library me thinks
>
> sybblk is needed too. So condensing my suggestion:
>
> replace: -lsybct -lsybcs -lsybtcl -lsybcomn -lsybintl -lsybblk
>
> with: -lsybct64 -lsybcs64 -lsybblk64
>
> or, more likely: -lsybct_r64 -lsybcs_r64 -lsybblk_r64
>
> HTH,
>
> /Stefan
>
> Knut Behrends wrote:
> > 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
> >
> >
> >
>
Jason L. Froebe
Help find a cure for breast cancer! Net proceeds benefit the Susan G. Komen Breast Cancer Foundation and the National Philanthropic Trust. Help by donating at http://www.the3day.org/chicago07/jfroebe - I'm walking 60 miles in 3 days in August 2007. (The day I return from TechWave is the first day of the Walk)
WebBlog http://jfroebe.livejournal.com
Tech log http://www.froebe.net/blog
Froebe Fibers http://www.froebe-fibers.com
|