mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-26 23:24:03 +02:00
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:
parent
99de2ada96
commit
9a4877e5c0
@ -777,6 +777,7 @@ WriteSections32 (
|
|||||||
*(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr
|
*(UINT32 *)Targ = *(UINT32 *)Targ - SymShdr->sh_addr
|
||||||
+ mCoffSectionsOffset[Sym->st_shndx];
|
+ mCoffSectionsOffset[Sym->st_shndx];
|
||||||
break;
|
break;
|
||||||
|
case R_386_PLT32:
|
||||||
case R_386_PC32:
|
case R_386_PC32:
|
||||||
//
|
//
|
||||||
// Relative relocation: Symbol - Ip + Addend
|
// Relative relocation: Symbol - Ip + Addend
|
||||||
@ -898,6 +899,7 @@ WriteRelocations32 (
|
|||||||
if (mEhdr->e_machine == EM_386) {
|
if (mEhdr->e_machine == EM_386) {
|
||||||
switch (ELF_R_TYPE(Rel->r_info)) {
|
switch (ELF_R_TYPE(Rel->r_info)) {
|
||||||
case R_386_NONE:
|
case R_386_NONE:
|
||||||
|
case R_386_PLT32:
|
||||||
case R_386_PC32:
|
case R_386_PC32:
|
||||||
//
|
//
|
||||||
// No fixup entry required.
|
// No fixup entry required.
|
||||||
@ -1166,5 +1168,3 @@ CleanUp32 (
|
|||||||
free (mCoffSectionsOffset);
|
free (mCoffSectionsOffset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user