This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 1/2] Speedup part #1
- From: Nick Clifton <nickc at redhat dot com>
- To: Eric Botcazou <ebotcazou at adacore dot com>, binutils at sourceware dot org
- Date: Mon, 19 Mar 2018 17:34:41 +0000
- Subject: Re: [PATCH 1/2] Speedup part #1
- References: <3020797.INJX1uWNk0@polaris> <58501622.uTH28uq5Ug@polaris>
Hi Eric
Thanks for producing these improvments.
> 2018-03-13 Eric Botcazou <ebotcazou@adacore.com>
>
> ld/
> * emultempl/pe.em (U_SIZE): Delete.
> (pe_data_import_dll): Likewise.
> (make_import_fixup): Return void, take 4th parameter and pass it down
> in call to pe_create_import_fixup.
> (pe_find_data_imports): Move to...
> (gld_${EMULATION_NAME}_after_open): Run the stdcall fixup pass after
> the auto-import pass and add a guard before running the latter.
> * emultempl/pep.em (U_SIZE): Delete.
> (pep_data_import_dll): Likewise.
> (make_import_fixup): Return void, take 4th parameter and pass it down
> in call to pe_create_import_fixup.
> (pep_find_data_imports): Move to...
> (gld_${EMULATION_NAME}_after_open): Run the stdcall fixup pass after
> the auto-import pass and add a guard before running the latter.
> * pe-dll.c (runtime_pseudp_reloc_v2_init): Change type to bfd_boolean.
> (pe_walk_relocs_of_symbol): Rename into...
> (pe_walk_relocs): ...this. Add 2 more parameters,4th parameter to the
> callback prototype and pass 4th parameter in calls to the callback.
> If the import hash table is present, invoke the callback on the reloc
> if the symbol name is in the table.
> (pe_find_data_imports): ...here. Take 2 parameters. Build an import
> hash table for the pseudo-relocation support version 2. When it is
> built, walk the relocations only once at the end; when it is not, do
> not build a fixup when the symbol isn't part of an import table.
> Issue the associated warning only after a first fixup is built.
> (tmp_seq2): Delete.
> (make_singleton_name_imp): Likewise.
> (make_import_fixup_mark): Return const char * and a stable string.
> (make_import_fixup_entry): Do not deal with the pseudo-relocation
> support version 2.
> (make_runtime_pseudo_reloc): Factor out code and fix formatting.
> (pe_create_import_fixup): Add 5th parameter. Clearly separate the
> pseudo-relocation support version 2 from the rest. Fix formatting.
> * pe-dll.h (pe_walk_relocs_of_symbol): Delete.
> (pe_find_data_imports): Declare.
> (pe_create_import_fixup): Add 5th parameter.
> * pep-dll.c (pe_data_import_dll): Delete.
> (pe_find_data_imports): Define.
> (pe_walk_relocs_of_symbol): Delete.
> * pep-dll.h (pep_walk_relocs_of_symbol): Delete.
> (pep_find_data_imports): Declare.
> (pep_create_import_fixup): Add 5th parameter.> * ld.texinfo (--enable-auto-import): Adjust to new implementation.
Approved - please apply - but please could you also add a line to the ld/NEWS file mentioning this new feature.
Cheers
Nick