fix LTO streaming order dependence on randomness
authorRichard Biener <rguenther@suse.de>
Mon, 6 Jul 2020 09:30:53 +0000 (11:30 +0200)
committerRichard Biener <rguenther@suse.de>
Tue, 7 Jul 2020 06:43:23 +0000 (08:43 +0200)
commitc50502ca4ebb4d4bd2df9edf1eb5c53aacfa0a1e
treeb909dd68ef2f33ca47fa985fd00ba12435d66aaa
parent4077d74c6d8946b667f5544bb3dedf32d451aa2f
fix LTO streaming order dependence on randomness

This fixes the sorting of to copy symbols in lto_output introduced
with GCC 10 to not depend on the actual values of the randomness
we append to LTO section names but instead on the order they appear
in the unsorted array.

This fixed observed debug info differences due to tree merging
prevailing different early debug pointers.

2020-07-06  Richard Biener  <rguenther@suse.de>

* lto-streamer-out.c (cmp_symbol_files): Use the computed
order map to sort symbols from the same sub-file together.
(lto_output): Compute a map of sub-file to an order number
it appears in the symbol output array.
gcc/lto-streamer-out.c