From: Andrew Stubbs Date: Thu, 22 Oct 2020 12:27:47 +0000 (+0100) Subject: amdgcn: Fix early-debug relocations X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74171a08a1be64f807632b6d3408c2a17defeadd;p=thirdparty%2Fgcc.git amdgcn: Fix early-debug relocations The relocation symbols were inadvertantly wiped when the type was set in mkoffload. gcc/ChangeLog * config/gcn/mkoffload.c (copy_early_debug_info): Don't wipe relocation symbols. (cherry picked from commit d24a4c8c4256cc287ebf4ad80368b4f1edb1733e) --- diff --git a/gcc/config/gcn/mkoffload.c b/gcc/config/gcn/mkoffload.c index 7efbbd83ee38..60794c104346 100644 --- a/gcc/config/gcn/mkoffload.c +++ b/gcc/config/gcn/mkoffload.c @@ -335,19 +335,24 @@ copy_early_debug_info (const char *infile, const char *outfile) { case R_X86_64_32: case R_X86_64_32S: - reloc->r_info = R_AMDGPU_ABS32; + reloc->r_info = ELF32_R_INFO(ELF32_R_SYM(reloc->r_info), + R_AMDGPU_ABS32); break; case R_X86_64_PC32: - reloc->r_info = R_AMDGPU_REL32; + reloc->r_info = ELF32_R_INFO(ELF32_R_SYM(reloc->r_info), + R_AMDGPU_REL32); break; case R_X86_64_PC64: - reloc->r_info = R_AMDGPU_REL64; + reloc->r_info = ELF32_R_INFO(ELF32_R_SYM(reloc->r_info), + R_AMDGPU_REL64); break; case R_X86_64_64: - reloc->r_info = R_AMDGPU_ABS64; + reloc->r_info = ELF32_R_INFO(ELF32_R_SYM(reloc->r_info), + R_AMDGPU_ABS64); break; case R_X86_64_RELATIVE: - reloc->r_info = R_AMDGPU_RELATIVE64; + reloc->r_info = ELF32_R_INFO(ELF32_R_SYM(reloc->r_info), + R_AMDGPU_RELATIVE64); break; default: gcc_unreachable ();