diff options
author | Andrew Stubbs <ams@codesourcery.com> | 2020-10-22 13:27:47 +0100 |
---|---|---|
committer | Andrew Stubbs <ams@codesourcery.com> | 2020-11-26 14:28:44 +0000 |
commit | d24a4c8c4256cc287ebf4ad80368b4f1edb1733e (patch) | |
tree | 3cb276a744f08039eb2a221d55be0c183c7db6df /gcc/config/gcn | |
parent | 715a8bc8d471d9b8ed5361b32055ae2be6b75fb7 (diff) | |
download | gcc-d24a4c8c4256cc287ebf4ad80368b4f1edb1733e.zip gcc-d24a4c8c4256cc287ebf4ad80368b4f1edb1733e.tar.gz gcc-d24a4c8c4256cc287ebf4ad80368b4f1edb1733e.tar.bz2 |
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.
Diffstat (limited to 'gcc/config/gcn')
-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 f7589a5..fad0fb3 100644 --- a/gcc/config/gcn/mkoffload.c +++ b/gcc/config/gcn/mkoffload.c @@ -336,19 +336,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 (); |