[unixODBC-dev] ODBC on 64 bit linux - test64

Nick Gorham nick.gorham at easysoft.com
Tue Jan 22 14:13:29 GMT 2008


ZIGLIO, Frediano, VF-IT wrote:

>>> 
>>>
>>>      
>>>
>>Why? the type in issue is the integer, I don't see why the size of a 
>>pointer has anything to do with it. What about a platform 
>>with a 64bit 
>>accumulator and a 48 bit address bus?
>>
>>    
>>
>
>The header you use is not fully compatible with Windows. Under win64
>sizeof(long) == 4 but sizeof(SQLULEN) == 8. Perhaps a more compatible
>way is defining SQLULEN as a size_t type.
>
>  
>
Well, sizeof( long ) = 4 is the original cause of the confusion. I agree 
that its broken on windows, but alternative header files are available 
for that platform :-).

>>> 
>>>
>Yes and not cause when customers wants to move to win64 code is not
>compatible. Currently some Linux x64 distro use sizeof(SQLULEN) == 4
>while others use sizeof(SQLULEN) == 8. Personally I don't like this ABI
>incompatibility. It cause closed source drivers to have 2 compiled
>shared libraries.
>
>  
>
Tell me about it :-(

-- 
Nick Gorham
Easysoft Limited
http://www.easysoft.com, http://www.unixODBC.org




More information about the unixODBC-dev mailing list