From c2180f2723e80fa8a4b423f95cdf54110ae1ffb0 Mon Sep 17 00:00:00 2001 From: Vincent Fortier Date: Wed, 21 Aug 2024 17:24:35 +0000 Subject: [PATCH] IGC: configure 100%, build 93%, sigh, getting there --- cross/intel-graphics-compiler/Makefile | 96 ++++++++++++++++---------- cross/intel-graphics-compiler/digests | 6 +- 2 files changed, 64 insertions(+), 38 deletions(-) diff --git a/cross/intel-graphics-compiler/Makefile b/cross/intel-graphics-compiler/Makefile index 5602dbd7ff44..7d775e5f44d1 100644 --- a/cross/intel-graphics-compiler/Makefile +++ b/cross/intel-graphics-compiler/Makefile @@ -1,7 +1,7 @@ PKG_NAME = intel-graphics-compiler -PKG_VERS = 1.0.17384.9 -#PKG_VERS = 1.0.17224.10 -#PKG_VERS = 1.0.16900.23 +PKG_VERS = 1.0.17384.11 +#PKG_VERS = 1.0.17193.16 +#PKG_VERS = 1.0.15468.40 PKG_EXT = tar.gz PKG_DIST_NAME = igc-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/intel/intel-graphics-compiler/archive @@ -17,13 +17,13 @@ BUILD_DEPENDS += cross/intel-opencl-clang-140.src BUILD_DEPENDS += cross/llvm-project-140.src #BUILD_DEPENDS += cross/llvm-140.src cross/clang-140.src cross/lld-140.src cross/libunwind-140.src DEPENDS += cross/intel-level-zero -DEPENDS += cross/SPIRV-Tools HOMEPAGE = https://github.com/oneapi-src/level-zero COMMENT = This project is part of the larger oneAPI project and contains copies of the Level Zero Specification API C/C++ header files, Level Zero Loader, Level Zero Validation Layer and Level Zero Tracing Layer LICENSE = MIT POST_EXTRACT_TARGET = igc_post_extract_target +CMAKE_USE_NINJA = 0 # Default version of LLVM used by IGC IGC_LLVM_MAJ = 14 @@ -43,18 +43,18 @@ CMAKE_DIR = $(WORK_DIR)/igc # Indicates whether the LLVM Interpreter will be # linked with the Foreign Function Interface library # (libffi) in order to enable calling external functions. -DEPENDS += cross/libffi -CMAKE_ARGS += -DLLVM_ENABLE_FFI=ON +#DEPENDS += cross/libffi +#CMAKE_ARGS += -DLLVM_ENABLE_FFI=ON -DEPENDS += cross/ncursesw -CMAKE_ARGS += -DLLVM_ENABLE_TERMINFO=ON +#DEPENDS += cross/ncursesw +#CMAKE_ARGS += -DLLVM_ENABLE_TERMINFO=ON -DEPENDS += cross/libxml2 -CMAKE_ARGS += -DLLVM_ENABLE_LIBXML2=ON +#DEPENDS += cross/libxml2 +#CMAKE_ARGS += -DLLVM_ENABLE_LIBXML2=ON # Enable building with zlib to support compression/uncompression -DEPENDS += cross/zlib -CMAKE_ARGS += -DLLVM_ENABLE_ZLIB=ON +#DEPENDS += cross/zlib +#CMAKE_ARGS += -DLLVM_ENABLE_ZLIB=ON # Assertions are internal checks to help find bugs. # They typically slow down LLVM and Clang when enabled @@ -73,9 +73,6 @@ CMAKE_ARGS += -DBUILD_SHARED_LIBS=OFF CMAKE_ARGS += -DLLVM_INCLUDE_BENCHMARKS=OFF CMAKE_ARGS += -DLLVM_INCLUDE_TESTS=OFF -# Required in conjunction with -DIGC_OPTION__USE_PREINSTALLED_SPIRV_HEADERS='ON' -CMAKE_ARGS += -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=$(WORK_DIR)/SPIRV-Headers - # [intel-opencl-clang-140] CMAKE_ARGS += -DAPPLY_PATCHES='OFF' @@ -88,52 +85,81 @@ CMAKE_ARGS += -DFOUND_VCS=$(CMAKE_BUILD_DIR)/IGC/llvm-deps-$(IGC_LLVM_VER)/build # IGC specific CMAKE_ARGS += -DIGC_OPTION__ARCHITECTURE_TARGET='Linux64' CMAKE_ARGS += -DIGC_OPTION__ARCHITECTURE_HOST='Linux64' +#CMAKE_ARGS += -DINSTALL_GENX_IR='ON' + +# [clang] CMAKE_ARGS += -DIGC_OPTION__CLANG_MODE='Source' -CMAKE_ARGS += -DIGC_OPTION__CLANG_SOURCES_DIR:PATH=$(WORK_DIR)/llvm-project/clang +# Has no effect when using llvm-project sources +#CMAKE_ARGS += -DIGC_OPTION__CLANG_SOURCES_DIR:PATH=$(WORK_DIR)/llvm-project/clang +CMAKE_ARGS += -DCCLANG_FROM_SYSTEM='OFF' + +# [lld] CMAKE_ARGS += -DIGC_OPTION__LLD_MODE='Source' -CMAKE_ARGS += -DIGC_OPTION__lld_SOURCES_DIR:PATH=$(WORK_DIR)/llvm-project/lld +# Has no effect when using llvm-project sources +#CMAKE_ARGS += -DIGC_OPTION__lld_SOURCES_DIR:PATH=$(WORK_DIR)/llvm-project/lld + +# [llvm] CMAKE_ARGS += -DIGC_OPTION__LLVM_MODE='Source' CMAKE_ARGS += -DIGC_OPTION__LLVM_STOCK_SOURCES=ON CMAKE_ARGS += -DIGC_OPTION__LLVM_SOURCES_DIR=$(WORK_DIR)/llvm-project CMAKE_ARGS += -DIGC_OPTION__LLVM_PREFERRED_VERSION='$(IGC_LLVM_VER)' + +# [libunwind] # Required to copy libunwind/include/mach-o/compact_unwind_encoding.h CMAKE_ARGS += -DDEFAULT_IGC_LLVM_SOURCES_DIR=$(WORK_DIR)/llvm-project -# Required in conjunction with -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR -CMAKE_ARGS += -DIGC_OPTION__USE_PREINSTALLED_SPIRV_HEADERS='ON' -CMAKE_ARGS += -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR='ON' -CMAKE_ARGS += -DCCLANG_FROM_SYSTEM='OFF' -CMAKE_ARGS += -DINSTALL_GENX_IR='ON' -# [SPIRV-Tools] -# cannot be built in-tree: SPIRV-Tools requires C++17 or later, but is configured for C++14 -CMAKE_ARGS += -DIGC_OPTION__SPIRV_TOOLS_MODE='Prebuilds' +# [SPIRV-Headers] +# Requires conjunction of both to be detected: +# -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR +# -DIGC_OPTION__USE_PREINSTALLED_SPIRV_HEADERS='ON' +# Although using local SPIRV-Headers resilts in: +# fatal error: spirv/unified1/spirv.hpp: No such file or directory +#CMAKE_ARGS += -DIGC_OPTION__USE_PREINSTALLED_SPIRV_HEADERS='ON' +#CMAKE_ARGS += -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=$(WORK_DIR)/SPIRV-Headers # [SPIRV-LLVM-Translator -> llvm-spirv] +CMAKE_ARGS += -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR='OFF' # Leave in auto-configure as otherwise fails #CMAKE_ARGS += -DIGC_OPTION__SPIRV_TRANSLATOR_MODE='Source' #CMAKE_ARGS += -DIGC_OPTION__SPIRV_TRANSLATOR_SOURCE_DIR=$(WORK_DIR)/SPIRV-LLVM-Translator +# [SPIRV-Tools] +# cannot be built in-tree: SPIRV-Tools requires C++17 or later, but is configured for C++14 +DEPENDS += cross/SPIRV-Tools +CMAKE_ARGS += -DIGC_OPTION__SPIRV_TOOLS_MODE='Prebuilds' + # [intel-vc-intrinsics] # Leaving source directory in auto-configure mode du to CMake Warning: # Manually-specified variables were not used by the project: IGC_OPTION__VC_INTRINSICS_SOURCES_DIR CMAKE_ARGS += -DIGC_OPTION__VC_INTRINSICS_MODE='Source' #CMAKE_ARGS += -DIGC_OPTION__VC_INTRINSICS_SOURCES_DIR=$(WORK_DIR)/vc-intrinsics -CMAKE_ARGS += -DCMAKE_POLICY_DEFAULT_CMP0079='NEW' +#CMAKE_ARGS += -DCMAKE_POLICY_DEFAULT_CMP0079='NEW' + +# Seems to go further, up to 95% +ADDITIONAL_CPPFLAGS += -I$(WORK_DIR)/SPIRV-LLVM-Translator/include +ADDITIONAL_CPPFLAGS += -Wno-error=restrict +ADDITIONAL_CPPFLAGS += -Wno-error=deprecated-declarations -ADDITIONAL_CXXFLAGS += -I$(WORK_DIR)/SPIRV-LLVM-Translator/include -ADDITIONAL_CXXFLAGS += -Wno-error=restrict -ADDITIONAL_CXXFLAGS += -Wno-error=deprecated-declarations +#ADDITIONAL_CXXFLAGS += -I$(WORK_DIR)/SPIRV-LLVM-Translator/include +#ADDITIONAL_CXXFLAGS += -Wno-error=restrict +#ADDITIONAL_CXXFLAGS += -Wno-error=deprecated-declarations -# Fails to access in NATIVE/bin due to parallel compiling -# llvm-tblgen provided thru native/llvm-9.0 instead -BUILD_DEPENDS += native/llvm-9.0 -CMAKE_ARGS += -DLLVM_TABLEGEN=$(abspath $(PWD)/../../native/llvm-9.0/work-native/install/usr/local/bin/llvm-tblgen) +# Fails to access in NATIVE/bin/llvm-tblgen possibly due to parallel compiling +# Provided thru native/llvm-14.0 instead +BUILD_DEPENDS += native/llvm-14.0-build +CMAKE_ARGS += -DLLVM_TABLEGEN=$(abspath $(PWD)/../../native/llvm-14.0-build/work-native/install/usr/local/bin/llvm-tblgen) +CMAKE_ARGS += -DCLANG_TABLEGEN=$(abspath $(PWD)/../../native/llvm-14.0-build/work-native/install/usr/local/bin/clang-tblgen) +#CMAKE_ARGS += -DCMAKE_POLICY_DEFAULT_CMP0116='OLD' +#CMAKE_ARGS += -DCMAKE_POLICY_DEFAULT_CMP0116='NEW' include ../../mk/spksrc.cross-cmake.mk -# Requires access to build-time NATIVE tools -ENV += PATH=$(CMAKE_BUILD_DIR)/IGC/llvm-deps-$(IGC_LLVM_VER)/build/src/NATIVE/bin:$$PATH +# Requires access to build-time +# NATIVE tools: IGC/llvm-deps-$(IGC_LLVM_VER)/build/src/NATIVE/bin +# llvm-tblgen, clang-tool, llvm-link thru native/llvm-14.0 +# CMCLTranslatorTool (during build time): IGC/Release/CMCLTranslatorTool +ENV += PATH=$(CMAKE_BUILD_DIR)/IGC/llvm-deps-$(IGC_LLVM_VER)/build/src/NATIVE/bin:$(CMAKE_BUILD_DIR)/IGC/Release:$(abspath $(PWD)/../../native/llvm-14.0-build/work-native/install/usr/local/bin):$$PATH igc_link_external_project: @cd $(WORK_DIR)/llvm-project/llvm/projects && ln -sf ../../../opencl-clang opencl-clang diff --git a/cross/intel-graphics-compiler/digests b/cross/intel-graphics-compiler/digests index 46464b7ff516..507b9feefac0 100644 --- a/cross/intel-graphics-compiler/digests +++ b/cross/intel-graphics-compiler/digests @@ -1,3 +1,3 @@ -igc-1.0.17384.9.tar.gz SHA1 517352f13ae918b2a173f07d617acde30022c279 -igc-1.0.17384.9.tar.gz SHA256 98f7a05514363a19fd311e9d2fc52a043f2992ac994197fba049acd02ac0c561 -igc-1.0.17384.9.tar.gz MD5 deaca22f66ad74dfdc8b208b296a1f21 +igc-1.0.17384.11.tar.gz SHA1 f019af3ee797e5546e44569d03f9b2800265099b +igc-1.0.17384.11.tar.gz SHA256 d560600e6a7c6a43b86abc3d8e9fd5e3a2110cc4818e09a9511965a86cd2f959 +igc-1.0.17384.11.tar.gz MD5 028bf66dbf35c1d71ffca58d45d04406