<div dir="ltr"><div><div>Hi All, <br><br></div>Previously I did successfully built pcsc-lite 1.6.1 and ccid-1.3.13 under Solaris 11 using the Sun Developer Studio compiler (cc). Since then, there is a new requirement to use an USB PC/SC card reader that is not supported by ccid-1.3.13 and is only supported at later versions. So I have decided to try build pcsc-lite 1.8.14 and ccid 1.4.21 under Solaris 11. This time I decided to ditch cc and use gcc 4.9.2 from opencsw instead.<br><br></div><div>Here the brick walls I am hitting now :<br><br></div><div>1. Using the following configuration options :<br>env MAKE=gmake NM=gnm STRIP=gstrip RANLIB=granlib LIBUSB_CFLAGS="-I/usr/include" LIBUSB_LIBS="-L/usr/lib -lusb" SYMBOL_VISIBILITY="-fvisibility=default" ./configure --prefix=/usr/local --enable-debugatr --disable-libusb<br></div><div>(libusb on Solaris 11.3 seems incompatible with pcsc-lite so I had to disable it)<br><br></div><div>When I build with "gmake" afterwards, this is what I got:<br><br>Undefined                       first referenced<br> symbol                             in file<br>SCardListReaders                    testpcsc.o<br>SCardSetAttrib                      testpcsc.o<br>SCardGetAttrib                      testpcsc.o<br>g_rgSCardRawPci                     testpcsc.o<br>SCardReconnect                      testpcsc.o<br>SCardFreeMemory                     testpcsc.o<br>SCardDisconnect                     testpcsc.o<br>SCardReleaseContext                 testpcsc.o<br>SCardIsValidContext                 testpcsc.o<br>SCardEstablishContext               testpcsc.o<br>SCardGetStatusChange                testpcsc.o<br>SCardListReaderGroups               testpcsc.o<br>SCardStatus                         testpcsc.o<br>pcsc_stringify_error                testpcsc.o<br>SCardControl                        testpcsc.o<br>SCardConnect                        testpcsc.o<br>g_rgSCardT1Pci                      testpcsc.o<br>g_rgSCardT0Pci                      testpcsc.o<br>SCardTransmit                       testpcsc.o<br><br></div><div>Using objdump I can see that the libpcsclite.so.1 just built hides the symbols above. So problem 1 is how should I configure the build so that gcc will not hide the symbols by default? I tried the "SYMBOL_VISIBILITY="-fvisibility=default" and that does not work. <br><br></div><div>After changing the src/Makefile to stop hiding the symbols, the build can continue, and then hit this brick wall:<br><br>  CC       pcscd-configfile.o<br>configfile.l: In function âDBGetReaderListDirâ:<br>configfile.l:295:16: error: âstruct direntâ has no member named âd_typeâ<br>    if (direntry->d_type == DT_UNKNOWN)<br>                ^<br>configfile.l:295:28: error: âDT_UNKNOWNâ undeclared (first use in this function)<br>    if (direntry->d_type == DT_UNKNOWN)<br>                            ^<br>configfile.l:295:28: note: each undeclared identifier is reported only once for each function it appears in<br>configfile.l:314:17: error: âstruct direntâ has no member named âd_typeâ<br>     if (direntry->d_type != DT_REG)<br>                 ^<br>configfile.l:314:29: error: âDT_REGâ undeclared (first use in this function)<br>     if (direntry->d_type != DT_REG)<br><br><br></div><div>Problem 2 is I think the dirent.h under Solaris 11 is incompatible with the pcscd-config file. Is there anything I can do about this?<br><br></div><div>For now, I would return to cc and see if the build is any different. <br></div><div><br></div><div>Thanks very much and Best Regards<br><br><br></div></div>