SWDEV-258808 - OCLSeparateCompile subtest of oclcompiler error

[PAL to KFD/ROCr][ROCr_Runtime][Vega10] OCLSeparateCompile subtest of
oclcompiler from ocltst test package is encountering clLinkProgram()
failed (chksum 0x00000001) error

If runtime does not provide a file name as dump file to ELF library,
ELF library use a temp file in current folder.
The current folder can be not writable for several reasons:
1. The application current folder might be system folder, the user
  does not have write permission.
2. The current folder is under a readonly file system. This happens for
embedded customers.

Tested in VEGA10. Issue was fixed.

Change-Id: Ic0e9f040b7c7583914301673cce237ab28b0c0cb


[ROCm/clr commit: 6327dbc4cc]
This commit is contained in:
Alex Xie
2020-11-13 14:39:10 -05:00
committed by AlexBin Xie
parent 46c95229d0
commit 2a6c8ecb60
3 changed files with 19 additions and 3 deletions
+6 -1
View File
@@ -1371,15 +1371,20 @@ bool Program::initBuild(amd::option::Options* options) {
// Elf Binary setup
std::string outFileName;
bool tempFile = false;
// true means hsail required
clBinary()->init(options, true);
if (options->isDumpFlagSet(amd::option::DUMP_BIF)) {
outFileName = options->getDumpFileName(".bin");
} else {
// elf lib needs a writable temp file
outFileName = amd::Os::getTempFileName();
tempFile = true;
}
if (!clBinary()->setElfOut(LP64_SWITCH(ELFCLASS32, ELFCLASS64),
(outFileName.size() > 0) ? outFileName.c_str() : nullptr)) {
(outFileName.size() > 0) ? outFileName.c_str() : nullptr, tempFile)) {
LogError("Setup elf out for gpu failed");
return false;
}