diff --git a/projects/clr/rocclr/runtime/device/devkernel.cpp b/projects/clr/rocclr/runtime/device/devkernel.cpp index 761610a12e..ff3c8b4f31 100644 --- a/projects/clr/rocclr/runtime/device/devkernel.cpp +++ b/projects/clr/rocclr/runtime/device/devkernel.cpp @@ -1386,7 +1386,8 @@ bool Kernel::GetPrintfStr(const amd_comgr_metadata_node_t programMD, amd_comgr_metadata_node_t printfMeta; - amd_comgr_status_t status = amd::Comgr::metadata_lookup(programMD, "Printf", &printfMeta); + amd_comgr_status_t status = amd::Comgr::metadata_lookup(programMD, + codeObjectVer() == 2 ? "Printf" : "amdhsa.printf", &printfMeta); if (status != AMD_COMGR_STATUS_SUCCESS) { return true; // printf string metadata is not provided so just exit } diff --git a/projects/clr/rocclr/runtime/device/devprogram.cpp b/projects/clr/rocclr/runtime/device/devprogram.cpp index f40ae71adb..47a6662e22 100644 --- a/projects/clr/rocclr/runtime/device/devprogram.cpp +++ b/projects/clr/rocclr/runtime/device/devprogram.cpp @@ -1760,6 +1760,8 @@ bool Program::linkImplLC(amd::option::Options* options) { std::ostream_iterator(ostrstr, " ")); codegenOptions.append(" ").append(ostrstr.str()); + // Force object code v2. + codegenOptions.append(" -mno-code-object-v3"); // Set whole program mode codegenOptions.append(" -mllvm -amdgpu-internalize-symbols -mllvm -amdgpu-early-inline-all");