ld: pe: Improve performance of object file exclude symbol directives
authorMartin Storsjö <martin@martin.st>
Fri, 2 Sep 2022 09:22:29 +0000 (12:22 +0300)
committerMartin Storsjö <martin@martin.st>
Mon, 12 Sep 2022 08:07:35 +0000 (11:07 +0300)
commita33a94cf432e449461b7ddcc22b6f5a886cd3315
tree8bb88e797733fc5803784465d455f397a2d85d3d
parent3d36a6396fbfacd7b1941527d84ff6c0f40ff121
ld: pe: Improve performance of object file exclude symbol directives

Store the list of excluded symbols in a sorted list, speeding up
checking for duplicates when inserting new entries.

This is done in the same way as is done for exports and imports
(while the previous implementation was done with a linked list,
based on the implementation for aligncomm).

When linking object files with excluded symbols, there can potentially
be very large numbers of excluded symbols (just like builds with
exports can have a large number of exported symbols).

This improves the link performance somewhat, when linking with large
numbers of excluded symbols.

The later actual use of the excluded symbols within pe-dll.c
handles them via an unordered linked list still, though.
ld/deffile.h
ld/deffilep.y
ld/pe-dll.c