delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/11/01/06:56:04

From: thunter AT cfa DOT harvard DOT edu (Todd R. Hunter)
Subject: B19,20: name of DLLs truncated to "dll"?
1 Nov 1998 06:56:04 -0800 :
Message-ID: <Pine.OSF.3.91.981031212600.19520A-100000.cygnus.gnu-win32@zocalo.harvard.edu>
Reply-To: thunter AT cfa DOT harvard DOT edu
Mime-Version: 1.0
To: gnu-win32 AT cygnus DOT com

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 AT cfa DOT harvard DOT edu

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019