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'" Cc: "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