BaseTools: Fix for NOOPT CLANG38 compilation with clang-13

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3715

We must treat not only R_X86_64_PLT32 as R_X86_64_PC32
(https://github.com/torvalds/linux/commit/
b21ebf2fb4cde1618915a97cc773e287ff49173e),
but also treat R_386_PLT32 relocation as R_386_PC32
(https://github.com/torvalds/linux/commit/
bb73d07148c405c293e576b40af37737faf23a6a).

Signed-off-by: Mikhail Krichanov <krichanov@ispras.ru>
This commit is contained in:
Mikhail Krichanov 2021-12-07 16:25:04 +03:00 committed by Mikhail Krichanov
parent 99de2ada96
commit 9a4877e5c0
1 changed files with 2 additions and 2 deletions

View File

@ -777,6 +777,7 @@ WriteSections32 (
*(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr
+ mCoffSectionsOffset[Sym->st_shndx];
break;
case R_386_PLT32:
case R_386_PC32:
//
// Relative relocation: Symbol - Ip + Addend
@ -898,6 +899,7 @@ WriteRelocations32 (
if (mEhdr->e_machine == EM_386) {
switch (ELF_R_TYPE(Rel->r_info)) {
case R_386_NONE:
case R_386_PLT32:
case R_386_PC32:
//
// No fixup entry required.
@ -1166,5 +1168,3 @@ CleanUp32 (
free (mCoffSectionsOffset);
}
}