From 7c47ea508501ad4ab93c5e5ff2fee3baf547600b Mon Sep 17 00:00:00 2001 From: foreman Date: Fri, 16 Jun 2017 14:07:54 -0400 Subject: [PATCH] P4 to Git Change 1423425 by lmoriche@lmoriche_palamida on 2017/06/16 13:49:36 SWDEV-102733 - [OCL-LC-ROCm] Cmake build Write CMakeLists.txt to enable building with and without the DK environment - Update from git. Affected files ... ... //depot/stg/opencl/drivers/opencl/CMakeLists.txt#12 edit ... //depot/stg/opencl/drivers/opencl/cmake/modules/bc2h.cmake#1 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/CMakeLists.txt#7 edit --- rocclr/CMakeLists.txt | 2 -- rocclr/cmake/modules/bc2h.cmake | 39 +++++++++++++++++++++++ rocclr/runtime/device/rocm/CMakeLists.txt | 7 ++-- 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 rocclr/cmake/modules/bc2h.cmake diff --git a/rocclr/CMakeLists.txt b/rocclr/CMakeLists.txt index f8758f57ef..98284529e3 100644 --- a/rocclr/CMakeLists.txt +++ b/rocclr/CMakeLists.txt @@ -47,8 +47,6 @@ add_subdirectory(library/amdgcn) add_subdirectory(compiler/lib/loaders/elf/utils/libelf) -add_subdirectory(tools/bc2h) - find_package(ROCR REQUIRED) add_subdirectory(runtime) diff --git a/rocclr/cmake/modules/bc2h.cmake b/rocclr/cmake/modules/bc2h.cmake new file mode 100644 index 0000000000..4b88abe87a --- /dev/null +++ b/rocclr/cmake/modules/bc2h.cmake @@ -0,0 +1,39 @@ +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bc2h.c +"#include \n" +"int main(int argc, char **argv){\n" +" FILE *ifp, *ofp;\n" +" int c, i, l;\n" +" if (argc != 4) return 1;\n" +" ifp = fopen(argv[1], \"rb\");\n" +" if (!ifp) return 1;\n" +" i = fseek(ifp, 0, SEEK_END);\n" +" if (i < 0) return 1;\n" +" l = ftell(ifp);\n" +" if (l < 0) return 1;\n" +" i = fseek(ifp, 0, SEEK_SET);\n" +" if (i < 0) return 1;\n" +" ofp = fopen(argv[2], \"wb+\");\n" +" if (!ofp) return 1;\n" +" fprintf(ofp, \"#define %s_size %d\\n\\n\"\n" +" \"#if defined __GNUC__\\n\"\n" +" \"__attribute__((aligned (4096)))\\n\"\n" +" \"#elif defined _MSC_VER\\n\"\n" +" \"__declspec(align(4096))\\n\"\n" +" \"#endif\\n\"\n" +" \"static const unsigned char %s[%s_size+1] = {\",\n" +" argv[3], l,\n" +" argv[3], argv[3]);\n" +" i = 0;\n" +" while ((c = getc(ifp)) != EOF) {\n" +" if (0 == (i&7)) fprintf(ofp, \"\\n \");\n" +" fprintf(ofp, \" 0x%02x,\", c);\n" +" ++i;\n" +" }\n" +" fprintf(ofp, \" 0x00\\n};\\n\\n\");\n" +" fclose(ifp);\n" +" fclose(ofp);\n" +" return 0;\n" +"}\n" +) + +add_executable(bc2h ${CMAKE_CURRENT_BINARY_DIR}/bc2h.c) diff --git a/rocclr/runtime/device/rocm/CMakeLists.txt b/rocclr/runtime/device/rocm/CMakeLists.txt index 35513b90cd..241dc1ebda 100644 --- a/rocclr/runtime/device/rocm/CMakeLists.txt +++ b/rocclr/runtime/device/rocm/CMakeLists.txt @@ -1,8 +1,11 @@ +include(bc2h) + set(INC_SUFFIX "amdgcn.inc") include_directories(${CMAKE_SOURCE_DIR}/compiler/lib/loaders/elf/utils/common) include_directories(${CMAKE_SOURCE_DIR}/compiler/lib/loaders/elf/utils/libelf) include_directories(${CMAKE_CURRENT_BINARY_DIR}) +include_directories(${ROCM_OCL_INCLUDES}) add_library(oclrocm OBJECT rocprintf.cpp @@ -30,7 +33,7 @@ foreach(AMDGCN_LIB_TARGET ${AMDGCN_LIB_TARGETS}) set(symbol "${lib_file_name}_amdgcn") add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${header} COMMAND bc2h ${bclib} ${CMAKE_CURRENT_BINARY_DIR}/${header} ${symbol} - DEPENDS ${AMDGCN_LIB_TARGET} + DEPENDS bc2h ${AMDGCN_LIB_TARGET} COMMENT "Generating ${header}" ) set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/${target}.inc) @@ -90,4 +93,4 @@ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/opencl2.0-c.amdgcn.inc ) set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/opencl2.0-c.amdgcn.inc ${CMAKE_CURRENT_BINARY_DIR}/opencl2.0-c.amdgcn.pch) add_custom_target(opencl2.0-c.amdgcn.inc ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/opencl2.0-c.amdgcn.inc) -add_dependencies(oclrocm opencl2.0-c.amdgcn.inc) \ No newline at end of file +add_dependencies(oclrocm opencl2.0-c.amdgcn.inc)