[Patch] skipping import libraries for performance reasons - direct auto-import of dll's

Charles Wilson cwilson@ece.gatech.edu
Thu Nov 28 16:20:00 GMT 2002


As far as I'm concerned, this latest patch of Ralf's is good to go 
(unless somebody has a better idea for how to handle REALPATH()).  But 
of course, the real binutils maintainers should make up their own minds. <g>

Ralf Habacker wrote:

>>I've initialized the [data|bss]_[start|end] variables as:

> This makes sense. I have forgotten this, sorry.

Okay.

>>if (strstr(erva + name_rva,"_nm_") == 0)
vs.
>>if (strncmp(erva+name_rva,"_nm_",4) != 0)

> Your solutions is much better, I have applied this.

So you were really only trying to screen out symbols that *start* with 
the string "_nm_", then?  I wasn't sure...since you mentioned "buggy 
binutils" I wondered if you were also trying to screen out things like 
"__imp_nm_***" (which should never exist, but might have existed in a 
"buggy binutils" release).

> At first I have thought if this works for mingw too, but then I saw the REALPATH
> macro, which protects this.

Yes, it does protect -- I tested it (on cygwin, but with HAVE_REALPATH 
explicitly #undef'ed.)  In that case, REALPATH(a,b) is NULL, we have 
(effectively)

if (NULL == NULL)
   strncpy(fbuf,entry->filename,LD_PATHMAX);

which means, no change from previous behavior, if realpath() is not 
available.  But still, it seems rather hackish, to me.  That's why I was 
wondering if there was a better way to approach the problem.

 >> ld-auto-import-dll.patch-csw
> updated

Cool.

 >> ld-auto-import-dll.patch-csw2.gz
> copied from your mail

OK -- but my bet is that if an official maintainer commits the first 
patch, they'll run autoheader/autoconf themselves (at least, that's what 
I do when somebody sends me a patch that includes changes to 
autotool-generated files).

> Changelog copied

Fine by me.

The remainder of your message was cygwin specific; I've followed up on 
the cygwin list.

--Chuck



More information about the Binutils mailing list