Zebin manipulator - create dump directory fix

This commit fixes problem in zebin manipulator when dump was not
created.
* Explicitly create dump directory.
* Add slash to dump argument.

Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
This commit is contained in:
Krystian Chmielewski
2022-10-21 10:58:50 +00:00
committed by Compute-Runtime-Automation
parent c7cb71e174
commit 0ef6b9b64c
8 changed files with 53 additions and 23 deletions

View File

@@ -122,7 +122,7 @@ if(WIN32)
${NEO_SHARED_DIRECTORY}/os_interface/windows/os_inc.h
${NEO_SHARED_DIRECTORY}/os_interface/windows/os_library_win.cpp
${NEO_SHARED_DIRECTORY}/os_interface/windows/os_library_win.h
${NEO_SOURCE_DIR}/shared/source/utilities/windows/directory.cpp
${NEO_SHARED_DIRECTORY}/utilities/windows/directory.cpp
)
else()
list(APPEND CLOC_LIB_SRCS_LIB
@@ -131,8 +131,8 @@ else()
${NEO_SHARED_DIRECTORY}/os_interface/linux/os_library_linux.cpp
${NEO_SHARED_DIRECTORY}/os_interface/linux/os_library_linux.h
${NEO_SHARED_DIRECTORY}/os_interface/linux/sys_calls_linux.cpp
${NEO_SHARED_DIRECTORY}/utilities/linux/directory.cpp
${OCLOC_DIRECTORY}/source/linux/os_library_ocloc_helper.cpp
${NEO_SOURCE_DIR}/shared/source/utilities/linux/directory.cpp
)
endif()

View File

@@ -14,19 +14,12 @@
#include "shared/source/device_binary_format/elf/ocl_elf.h"
#include "shared/source/helpers/file_io.h"
#include "shared/source/helpers/ptr_math.h"
#include "shared/source/utilities/directory.h"
#include <cstring>
#include <fstream>
#include <sstream>
#ifdef _WIN32
#include <direct.h>
#define MakeDirectory _mkdir
#else
#include <sys/stat.h>
#define MakeDirectory(dir) mkdir(dir, 0777)
#endif
template <typename T>
T readUnaligned(const void *ptr) {
T retVal = 0;
@@ -548,7 +541,7 @@ int BinaryDecoder::validateInput(const std::vector<std::string> &args) {
argHelper->printf("Warning : Path to dump folder not specificed - using ./dump as default.\n");
pathToDump = std::string("dump/");
}
MakeDirectory(pathToDump.c_str());
NEO::Directory::createDirectory(pathToDump);
}
return 0;
}

View File

@@ -16,6 +16,7 @@
#include "shared/source/device_binary_format/elf/elf_encoder.h"
#include "shared/source/device_binary_format/elf/zebin_elf.h"
#include "shared/source/device_binary_format/zebin_decoder.h"
#include "shared/source/utilities/directory.h"
#include <algorithm>
@@ -104,6 +105,7 @@ bool is64BitZebin(OclocArgHelper *argHelper, const std::string &sectionsInfoFile
BinaryFormats getBinaryFormatForAssemble(OclocArgHelper *argHelper, const std::vector<std::string> &args) {
auto it = std::find(args.begin(), args.end(), "-dump");
std::string dump = (it != args.end() && (it + 1) != args.end()) ? *(it + 1) : "dump/";
addSlash(dump);
auto sectionsInfoFilepath = dump + ZebinManipulator::sectionsInfoFilename.str();
const bool usesZebin = argHelper->fileExists(sectionsInfoFilepath);
if (usesZebin) {
@@ -167,6 +169,11 @@ ErrorCode ZebinDecoder<numBits>::decode() {
}
}
// Create dump directory if we are not using virtual filesystem
if (false == argHelper->outputEnabled()) {
Directory::createDirectory(arguments.pathToDump);
}
auto sectionsInfo = dumpElfSections(elf);
dumpSectionInfo(sectionsInfo);