This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

B19,20: name of DLLs truncated to "dll"?


I am trying to link a C program that accesses two third-party DLLs. 
Following instructions in the FAQ, I have culled out .def files from the
existing .LIB files, determined the mangled names from the subsequent
linker errors, and created corresponding .a files to link against these
DLLs by using dlltool as follows: 

dlltool -k --def gpib-32.def --dllname gpib-32.dll --output-lib libgpib-32.a 

When I compile and link using B18, the programs load the appropriate DLLs
and execute properly. However, when I try to use the newer releases B19 or
(as I discovered tonight) B20, I get the following fatal error message
upon execution: 
  "the dynamic link library dll cannot be found"

I was hoping that B20 would magically fix this problem, but alas no.
Here is the output of cygcheck on the B20-compiled version:

cygcheck laser.exe
Found: .\laserb20.exe
Found: c:\users\thunter\laserCode\bin\laserb20.exe
.\laserb20.exe
Error: could not find dll
Error: could not find dll
  c:\cygnus\CYGWIN~1\H-I586~1\bin\cygwin1.dll
    C:\WINNT35\System32\advapi32.dll
      C:\WINNT35\System32\ntdll.dll
      C:\WINNT35\System32\KERNEL32.dll
      C:\WINNT35\System32\USER32.dll
        C:\WINNT35\System32\GDI32.dll
      C:\WINNT35\System32\RPCRT4.dll

Similarly, here are some relevant lines of the output of objdump -p:
	DLL Name: dll
	vma:  Hint/Ord Member-Name
        ...
	DLL Name: dll
	vma:  Hint/Ord Member-Name
        ...
	DLL Name: cygwin1.dll
	vma:  Hint/Ord Member-Name
        ...
	DLL Name: kernel32.dll
	vma:  Hint/Ord Member-Name


*****  By contrast, here is the working b18-compiled version: *****

cygcheck laser.exe
Found: .\laser.exe
Found: c:\users\thunter\laserCode\bin\laser.exe
.\laser.exe
  .\gpib-32.dll  <-----note that these are found correctly in b18
  .\nidaq32.dll  <-----note that these are found correctly in b18
    .\MSVCRT.dll
      C:\WINNT35\System32\KERNEL32.dll
        C:\WINNT35\System32\ntdll.dll
    C:\WINNT35\System32\USER32.dll
      C:\WINNT35\System32\GDI32.dll
        C:\WINNT35\System32\ADVAPI32.dll
          C:\WINNT35\System32\RPCRT4.dll
    C:\WINNT35\System32\nicfq32.dll
      C:\WINNT35\System32\NISSM32.dll
        C:\WINNT35\System32\WINSPOOL.DRV
  c:\usr\bin\cygwin.dll
    C:\WINNT35\System32\wsock32.dll
      C:\WINNT35\System32\WS2_32.dll
        C:\WINNT35\System32\WS2HELP.dll

and objdump -p:

	DLL Name: gpib-32.dll
	vma:  Hint/Ord Member-Name
        ...
	DLL Name: nidaq32.dll
	vma:  Hint/Ord Member-Name
        ...
	DLL Name: cygwin.dll
	vma:  Hint/Ord Member-Name
        ...
	DLL Name: kernel32.dll
	vma:  Hint/Ord Member-Name


Does anyone know of any changes in dlltool between b18 and b19 which would
have this effect?  Is there some other command-line switch I need to set? 
I've tried re-running the b20 version of dlltool, but the same problem
persists. 

Thanks,
Todd Hunter
thunter@cfa.harvard.edu

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]