One of the DBD::Sybase users is reporting that DBD::Sybase segfaults on
startup when built with DBI 1.38, perl 5.8.0 with ithreads and 64 bit
integers (but NOT 64 bit everything).

DBD::Sybase fails the first time it tries to access DBIS:

In dbd_init() we have:

    if(DBIS->debug >= 2) {
        char *p = "";
        if((sv = perl_get_sv("DBD::Sybase::VERSION", FALSE)))
            p = SvPV(sv, lna);

and it segfaults on the if() statement.

If I'm not mistaken, this comes from the following:

# define DBIS (*(dbistate_t**)&SvIVX(DBISTATE_ADDRSV))

which is used if MULTIPLICITY is defined (which it is when ithreads is
enabled).

SvIVX will return a 64 bit entity in this situation, but pointers are 32
bit.

I have a feeling that there isn't any direct work-around, other than not
using 64 bit integers?

Michael
-- 
Michael Peppler                              Data Migrations, Inc.
[EMAIL PROTECTED]                 http://www.mbay.net/~mpeppler
Sybase T-SQL/OpenClient/OpenServer/C/Perl developer available for short or 
long term contract positions - http://www.mbay.net/~mpeppler/resume.html

Reply via email to