delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/1998/04/16/10:23:10

From: sos AT buggy DOT prospect DOT com DOT ru (Sergey Okhapkin)
Subject: RE: New import library format proposal.
16 Apr 1998 10:23:10 -0700 :
Message-ID: <01BD697B.90D34260.cygnus.cygwin32.developers@sos>
To: "'Ian Lance Taylor'" <ian AT cygnus DOT com>
Cc: "cygwin32-developers AT cygnus DOT com" <cygwin32-developers AT cygnus DOT com>

Ian Lance Taylor wrote:
> How about including the generic function in a COMDAT section in the
> library?

How do you want to pass a name of a dll to load to this function?

> So the speed up from your scheme is not the loading of the DLL, but
> only the symbol resolution.

Yes.

> My understanding is that MS has a program, editbin, which will set up
> the import address table and timestamps of a given executable or DLL
> for your system.  People concerned about performance can run that.  We

Here is the description of editbin's /bind option. I tried to "bind" 
cygwinb19.dll - the import table was modified, but I didn't have any 
speedup.

/BIND
Home | Overviews
This option sets the addresses of the entry points in the import address 
table for an executable file or DLL. Use this option to reduce load time of 
a program.
/BIND[:PATH=path]
Specify the program's executable file and DLLs in the files argument on the 
EDITBIN command line. The optional path argument to /BIND specifies the 
location of the DLLs used by the specified files. Separate multiple 
directories with a semicolon (;). If path is not specified, EDITBIN 
searches the directories specified in the PATH environment variable. If 
path is specified, EDITBIN ignores the PATH variable.
By default, the program loader sets the addresses of entry points when it 
loads a program. The amount of time this process takes varies, depending on 
the number of DLLs and the number of entry points referenced in the 
program. If a program has been modified with /BIND, and if the base 
addresses for the executable file and its DLLs do not conflict with DLLs 
that are already loaded, the operating system does not need to set these 
addresses. In a situation where the files are incorrectly based, the 
operating system relocates the program's DLLs and recalculates the 
entry-point addresses, which adds to the program's load time.


--
Sergey Okhapkin, http://www.lexa.ru/sos
Moscow, Russia


- Raw text -


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