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
