Project

General

Profile

Actions

Bug #14155

open

ld(1) string table merging could be much faster

Added by Rich Lowe 14 days ago. Updated 6 days ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
tools - gate/build tools
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

The string table merging in ld is currently quadratic in the number of sections and relocations in the input objects. This is usually not noticeable, but objects produced with -fdata-sections (or equivalent) can quickly cause this to be meaningfully problematic.

We should store affected relocations and symbols per output section to speed this up considerably.

Similarly, if a given output section has only one mergable input section, we can skip processing entirely and trust in whatever produced the object to have merged already.

Actions #1

Updated by Electric Monk 11 days ago

  • Gerrit CR set to 1760
Actions #2

Updated by Rich Lowe 6 days ago

testing:

illumos builds and checking the results, checking that strings remain in data sections (though not necessarily in the same places).   Soaking on my own systems, which includes building various 3rd party things and having them work.  Coincidentally to another bug fix, also build/compare of the llvm/clang test suites with no new additional failures.
Actions

Also available in: Atom PDF