Skip to content
Commit 2fc704a0 authored by Fangrui Song's avatar Fangrui Song
Browse files

[ELF] --emit-relocs: fix st_value of STT_SECTION in the presence of a gap...

[ELF] --emit-relocs: fix st_value of STT_SECTION in the presence of a gap before the first input section

In the presence of a gap, the st_value field of a STT_SECTION symbol is the
address of the first input section (incorrect if there is a gap). Set it to the
output section address instead.

In -r mode, this bug can cause an incorrect non-zero st_value of a STT_SECTION
symbol (while output sections have zero addresses, input sections may have
non-zero outSecOff).  The non-zero st_value can cause the final link to have
incorrect relocation computation (both GNU ld and LLD add st_value of the
STT_SECTION symbol to the output section address).

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D90520
parent 2ca4406d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment