How do you know if you are using 64 bit integers (is this a solaris thing or a Perl thing?)
terry
Michael Peppler wrote:
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
