diff options
author | Andrew Stubbs <ams@codesourcery.com> | 2020-10-22 13:27:47 +0100 |
---|---|---|
committer | Andrew Stubbs <ams@codesourcery.com> | 2021-03-06 15:57:00 +0000 |
commit | 74171a08a1be64f807632b6d3408c2a17defeadd (patch) | |
tree | 3bcf048fd714226f679e98df9764769861b8f56c | |
parent | d556f783e9947fece98537f2a335a9af70b52e3b (diff) | |
download | gcc-74171a08a1be64f807632b6d3408c2a17defeadd.zip gcc-74171a08a1be64f807632b6d3408c2a17defeadd.tar.gz gcc-74171a08a1be64f807632b6d3408c2a17defeadd.tar.bz2 |
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)
-rw-r--r-- | gcc/config/gcn/mkoffload.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/gcc/config/gcn/mkoffload.c b/gcc/config/gcn/mkoffload.c index 7efbbd8..60794c1 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 (); |