Add dynamic relocation types (NFC)
Change-Id: I1b443003077ba241f34444da293e362266c2ae92
[ROCm/ROCR-Runtime commit: c5e74b7d0a]
Šī revīzija ir iekļauta:
@@ -204,6 +204,15 @@ enum : unsigned {
|
||||
EF_AMDGPU_GENERIC_VERSION_MAX = 0xff,
|
||||
};
|
||||
|
||||
// ELF Relocation types for AMDGPU.
|
||||
enum : unsigned {
|
||||
R_AMDGPU_ABS32_LO = 1,
|
||||
R_AMDGPU_ABS32_HI = 2,
|
||||
R_AMDGPU_ABS64 = 3,
|
||||
R_AMDGPU_ABS32 = 6,
|
||||
R_AMDGPU_RELATIVE64 = 13,
|
||||
};
|
||||
|
||||
} // end namespace ELF
|
||||
|
||||
// ELF Section Header Flag Enumeration Values.
|
||||
|
||||
@@ -1833,7 +1833,7 @@ hsa_status_t ExecutableImpl::ApplyDynamicRelocation(hsa_agent_t agent, amd::hsa:
|
||||
symAddr += rel->addend();
|
||||
|
||||
switch (rel->type()) {
|
||||
case R_AMDGPU_V1_32_HIGH:
|
||||
case ELF::R_AMDGPU_ABS32_HI:
|
||||
{
|
||||
if (!symAddr) {
|
||||
logger_ << "LoaderError: symbol \"" << rel->symbol()->name() << "\" is undefined\n";
|
||||
@@ -1845,7 +1845,7 @@ hsa_status_t ExecutableImpl::ApplyDynamicRelocation(hsa_agent_t agent, amd::hsa:
|
||||
break;
|
||||
}
|
||||
|
||||
case R_AMDGPU_V1_32_LOW:
|
||||
case ELF::R_AMDGPU_ABS32_LO:
|
||||
{
|
||||
if (!symAddr) {
|
||||
logger_ << "LoaderError: symbol \"" << rel->symbol()->name() << "\" is undefined\n";
|
||||
@@ -1857,7 +1857,7 @@ hsa_status_t ExecutableImpl::ApplyDynamicRelocation(hsa_agent_t agent, amd::hsa:
|
||||
break;
|
||||
}
|
||||
|
||||
case R_AMDGPU_V1_64:
|
||||
case ELF::R_AMDGPU_ABS64:
|
||||
{
|
||||
if (!symAddr) {
|
||||
logger_ << "LoaderError: symbol \"" << rel->symbol()->name() << "\" is undefined\n";
|
||||
@@ -1868,7 +1868,7 @@ hsa_status_t ExecutableImpl::ApplyDynamicRelocation(hsa_agent_t agent, amd::hsa:
|
||||
break;
|
||||
}
|
||||
|
||||
case R_AMDGPU_V1_RELATIVE64:
|
||||
case ELF::R_AMDGPU_RELATIVE64:
|
||||
{
|
||||
int64_t baseDelta = reinterpret_cast<uint64_t>(relSeg->Address(0)) - relSeg->VAddr();
|
||||
uint64_t relocatedAddr = baseDelta + rel->addend();
|
||||
|
||||
Atsaukties uz šo jaunā problēmā
Block a user