I can confirm that unless you do some messing around the ABI does break if you 
want treat DWORD as 32bit. I manage to fool it enough to avoid the break but 
does unavoidably change the client code.

The libpcsclite.so.2 approach would be the cleanest all round. Would there be 
some cunning way of detecting a 64 bit build that should be linking against the 
new .2 library, but for some reason finds the old one, for example by forcing a 
reference to an export that only exists in the new ABI, eg by changing 
SCardEstablishContext to be SCardEstablishContext64 and macro'd in the header 
if _LP64 defined.

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Ludovic Rousseau
Sent: Tuesday, 27 July 2010 9:19 p.m.
To: MUSCLE
Subject: Re: [Muscle] 64bit portability and header tidy up

2010/7/27 Roger Brown <[email protected]>:
> Yes, it does work in effect, at the end of the day to avoid breaking binary 
> compatibility you either need to rebuild a new version of pcsclite with the 
> correct DWORD, or else fool somebody.

So you confirm that it _does_ break the binary compatibility.

I will have to release a new libpcsclite.so.2 (note the .2 here) with
the new ABI (Application Binary Interface).

libpcsclite.so.1 and libpcsclite.so.2 could work together on the same
system and still using the same pcscd (the protocol between
libpcsclite and pcscd does use only uint32_t types).

> Then client coding is as follows:
>
> /************************************************************************/
>                WINSCARD_DWORD cchGroups=0;
>
>                hr=SCardListReaderGroups(self->device->ctx,NULL,&cchGroups);
> /************************************************************************/

That is a break of the API (Application Programming Interface).
The application now has to use WINSCARD_DWORD instead of DWORD.

I don't think that is desirable.

Comments from others?

Regards,

-- 
 Dr. Ludovic Rousseau

_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle

_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle

Reply via email to