Index: head/devel/intel-graphics-compiler/Makefile =================================================================== --- head/devel/intel-graphics-compiler/Makefile (revision 549440) +++ head/devel/intel-graphics-compiler/Makefile (revision 549441) @@ -1,59 +1,59 @@ # $FreeBSD$ PORTNAME= intel-graphics-compiler DISTVERSIONPREFIX= igc- -DISTVERSION= 1.0.4944 +DISTVERSION= 1.0.5064 CATEGORIES= devel PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ -PATCHFILES+= b4e40a433077.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/129 +PATCHFILES+= d878880cbb3b.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/129 MAINTAINER= jbeich@FreeBSD.org COMMENT= Intel Graphics Compiler for OpenCL LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.md ONLY_FOR_ARCHS= amd64 i386 ONLY_FOR_ARCHS_REASON= Only Intel GPUs on x86 are supported LIB_DEPENDS= libopencl-clang.so:devel/opencl-clang USES= bison cmake compiler:c++17-lang python:build USE_GITHUB= yes USE_LDCONFIG= yes GH_ACCOUNT= intel GH_TUPLE= intel:vc-intrinsics:8300678:vcintrin/../vc-intrinsics CMAKE_OFF= INSTALL_SPIRVDLL CFLAGS+= -Wno-macro-redefined # __fastcall PLIST_SUB= ARCH_SUFX=${ARCH:S/i386/32/:S/amd//:S/x86_//} .if (exists(/usr/lib/clang/10.0.0) || exists(/usr/lib/clang/10.0.1) || exists(/usr/lib/clang/11.0.0)) && ${CXX} == c++ # https://github.com/intel/intel-graphics-compiler/issues/126 BUILD_DEPENDS+= clang++90:devel/llvm90 USES:= ${USES:Ncompiler*} CXX= clang++90 .endif post-patch: # lang/python* don't install unsuffixed symlinks @${REINPLACE_CMD} -i .python \ -e '/EXECUTABLE/s/"python"/"${PYTHON_CMD:T}"/' \ -e '/IGC_PYTHON/s/"python"/"${PYTHON_CMD:T}"/' \ ${WRKSRC}/IGC/CMakeLists.txt \ ${WRKSRC}/IGC/BiFModule/CMakeLists.txt # devel/llvm* have different naming from upstream under PATH @${REINPLACE_CMD} -e '/clang-\$$/s//clang$$/' \ ${WRKSRC}/IGC/BiFModule/CMakeLists.txt # No need to abort on every benign warning enabled by default @${REINPLACE_CMD} -e 's/"-Werror"//; /-Werror/d' \ ${WRKSRC}/IGC/CMakeLists.txt pre-configure: # Only one libLLVM can be loaded, so use the same version as devel/opencl-clang @for f in ${LOCALBASE}/lib/libopencl-clang.so.*; do \ ${REINPLACE_CMD} "/set.*LLVM_VERSION/s/\".*\"/\"$${f##*so.}\"/" \ ${WRKSRC}/IGC/CMakeLists.txt; \ done .include Index: head/devel/intel-graphics-compiler/distinfo =================================================================== --- head/devel/intel-graphics-compiler/distinfo (revision 549440) +++ head/devel/intel-graphics-compiler/distinfo (revision 549441) @@ -1,7 +1,7 @@ -TIMESTAMP = 1599469325 -SHA256 (intel-intel-graphics-compiler-igc-1.0.4944_GH0.tar.gz) = 4fd677f9206e390f842748a0d749be815d3c93f2ee5cc376af206d8e91ad244b -SIZE (intel-intel-graphics-compiler-igc-1.0.4944_GH0.tar.gz) = 6632351 +TIMESTAMP = 1600252048 +SHA256 (intel-intel-graphics-compiler-igc-1.0.5064_GH0.tar.gz) = 3636829234796e74bf8a94b6cf1e1e0fb709d0d8a56841f8334a6bea788e6857 +SIZE (intel-intel-graphics-compiler-igc-1.0.5064_GH0.tar.gz) = 6675927 SHA256 (intel-vc-intrinsics-8300678_GH0.tar.gz) = 0058323fb922f3ab0f82233821b13fd882e59f7b7741cc3d63c29f432289c90f SIZE (intel-vc-intrinsics-8300678_GH0.tar.gz) = 97070 -SHA256 (b4e40a433077.patch) = 56950deb485a4c1dc844f4864f42b80907919b61132b0e797f7955989fed0597 -SIZE (b4e40a433077.patch) = 9585 +SHA256 (d878880cbb3b.patch) = f430b2da0d212594ce73f23b279a1435f08dea60f30ec35494411ab0dc0fcf70 +SIZE (d878880cbb3b.patch) = 9088 Index: head/devel/intel-graphics-compiler/files/patch-unix =================================================================== --- head/devel/intel-graphics-compiler/files/patch-unix (revision 549440) +++ head/devel/intel-graphics-compiler/files/patch-unix (revision 549441) @@ -1,311 +1,304 @@ Relax Linux checks for the code works on any non-Windows platform. CMake Error at IGC/CMakeLists.txt:1974 (message): IGC_OPTION__ARCHITECTURE_TARGET: Target architecture is not specified and cannot be deduced from context. Please specify one, e.g. Windows32, Linux64, Android32, ... --- IGC/CMakeLists.txt.orig 2019-11-27 01:05:20 UTC +++ IGC/CMakeLists.txt @@ -834,11 +834,11 @@ function(igc_arch_detect targetArchVarName hostArchVar set(_targetArchitecture "Windows32") endif() # Use system processor set by toolchain or CMake. - elseif(ANDROID OR (CMAKE_SYSTEM_NAME MATCHES "Linux") + elseif(ANDROID OR (UNIX AND NOT APPLE) ) if(ANDROID) set(_targetArchOS "Android") - elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") + elseif(UNIX AND NOT APPLE) set(_targetArchOS "Linux") endif() @@ -865,9 +865,9 @@ function(igc_arch_detect targetArchVarName hostArchVar set(_hostArchitecture "Windows32") endif() # Use 'uname -m' to detect kernel architecture. - elseif((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") + elseif((UNIX AND NOT APPLE) ) - if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") + if(UNIX AND NOT APPLE) set(_hostArchOS "Linux") endif() @@ -2171,7 +2171,7 @@ endif() # NOTE: LLVM_ON_UNIX is also true for Android (CMAKE_SYSTEM_NAME specified by Android toolchain file is also "Linux", # but we should make sure so there is no errors in our assumptions). -if((CMAKE_SYSTEM_NAME MATCHES "Linux") OR ANDROID) +if((UNIX AND NOT APPLE) OR ANDROID) set(LLVM_ON_UNIX ON) else() set(LLVM_ON_UNIX OFF) --- 3d/common/iStdLib/File.h.orig 2019-11-27 01:05:20 UTC +++ 3d/common/iStdLib/File.h @@ -105,12 +105,9 @@ inline DWORD GetModuleFileName( char* pFileName, DWORD #elif defined(ISTDLIB_UMD) #if defined(_WIN32) return ::GetModuleFileNameA( NULL, pFileName, bufSize ); - #elif defined(__linux__) + #else //TODO: add Linux implementation. return 0; - #else - // TO DO: replace with non-Windows version - #error "TODO implement non-Windows equivalent of GetModuleFileName" #endif #else // this compilation path is not intended --- 3d/common/iStdLib/Object.h.orig 2019-11-27 01:05:20 UTC +++ 3d/common/iStdLib/Object.h @@ -150,7 +150,7 @@ inline long CObject::Acquire( void ) ASSERT( m_RefCount >= 0 ); ASSERT( m_RefCount < LONG_MAX ); -#if defined(ISTDLIB_MT) && defined(__linux__) +#if defined(ISTDLIB_MT) && defined(__GNUC__) __sync_fetch_and_add(&m_RefCount, 1); #elif defined(ISTDLIB_MT) ::InterlockedIncrement(&m_RefCount); @@ -182,7 +182,7 @@ inline long CObject::Release( void ) { ASSERT( m_RefCount > 0 ); -#if defined(ISTDLIB_MT) && defined(__linux__) +#if defined(ISTDLIB_MT) && defined(__GNUC__) __sync_sub_and_fetch(&m_RefCount, 1); #elif defined(ISTDLIB_MT) ::InterlockedDecrement(&m_RefCount); --- 3d/common/iStdLib/utility.h.orig 2019-11-27 01:05:20 UTC +++ 3d/common/iStdLib/utility.h @@ -431,7 +431,7 @@ __forceinline DWORD bsr64( const unsigned long long in _BitScanReverse64( &index, static_cast<_int64>( mask ) ); return static_cast( index ); -#elif defined __linux__ +#elif defined __GNUC__ return static_cast( 63 - __builtin_clzll( mask ) ); #else @@ -464,7 +464,7 @@ __forceinline DWORD bsr( const DWORD mask ) _BitScanReverse( &index, mask ); return static_cast(index); -#elif defined __linux__ +#elif defined __GNUC__ return static_cast( 31 - __builtin_clz( mask ) ); #else @@ -497,7 +497,7 @@ __forceinline DWORD bsf64( const unsigned long long in _BitScanForward64( &index, static_cast<_int64>( mask ) ); return static_cast( index ); -#elif defined __linux__ +#elif defined __GNUC__ return static_cast( __builtin_ffsll( mask ) - 1 ); #else @@ -529,7 +529,7 @@ __forceinline DWORD bsf( const DWORD mask ) _BitScanForward( &index, mask ); return index; -#elif defined __linux__ +#elif defined __GNUC__ return static_cast( __builtin_ffsl( mask ) - 1 ); #else --- IGC/AdaptorCommon/customApi.cpp.orig 2019-11-27 01:05:20 UTC +++ IGC/AdaptorCommon/customApi.cpp @@ -457,7 +457,7 @@ namespace IGC return ""; IGCBaseFolder = "/sdcard/intel/igc/"; -#elif defined __linux__ +#elif !defined __APPLE__ if (!IGC_IS_FLAG_ENABLED(DumpToCustomDir)) { IGCBaseFolder = "/tmp/IntelIGC/"; @@ -560,7 +560,7 @@ namespace IGC g_shaderOutputFolder = ""; -#elif defined __linux__ +#elif !defined __APPLE__ if (!IGC_IS_FLAG_ENABLED(DumpToCurrentDir) && g_shaderOutputFolder == "" && !IGC_IS_FLAG_ENABLED(DumpToCustomDir)) { bool needMkdir = false; --- IGC/AdaptorOCL/CLElfLib/CLElfTypes.h.orig 2020-05-19 05:44:04 UTC +++ IGC/AdaptorOCL/CLElfLib/CLElfTypes.h @@ -30,7 +30,7 @@ Abstract: Defines the types used for ELF headers/sect \******************************************************************************/ #pragma once -#if defined(__linux__) && defined(OGL) +#if !defined(__APPLE__) && !defined(_WIN32) && defined(OGL) #include "os_inc.h" #endif --- IGC/AdaptorOCL/DriverInfoOCL.hpp.orig 2020-02-22 05:52:18 UTC +++ IGC/AdaptorOCL/DriverInfoOCL.hpp @@ -71,7 +71,7 @@ namespace TC bool supportsStatelessSpacePrivateMemory() const override { return true; } bool NeedFP64(PRODUCT_FAMILY productFamily) const override { -#if defined(__linux__) +#if !defined(__APPLE__) && !defined(_WIN32) if (IGC_IS_FLAG_ENABLED(EnableDPEmulation)) { return true; } --- IGC/AdaptorOCL/OCL/sp/gtpin_igc_ocl.h.orig 2019-11-27 01:05:20 UTC +++ IGC/AdaptorOCL/OCL/sp/gtpin_igc_ocl.h @@ -38,7 +38,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define MY_CALLINGSTD _fastcall #define MY_CDECL _cdecl -#elif defined(ANDROID) || defined (__linux__) +#elif defined(__GNUC__) // Linux, Android #define MY_EXTERN_C extern "C" --- IGC/CMFE/AdaptorCM/InputArgsWrapper.cpp.orig 2020-08-29 06:30:46 UTC +++ IGC/CMFE/AdaptorCM/InputArgsWrapper.cpp @@ -55,7 +55,7 @@ void InputArgsWrapper::processSupportDirectories(const return; // TODO: enable this for Windows -#if __linux__ +#if !defined(_WIN32) // process files std::error_code EC; SeqStrT IncludeFiles; --- IGC/GenISAIntrinsics/GenIntrinsics.h.orig 2020-02-10 06:06:31 UTC +++ IGC/GenISAIntrinsics/GenIntrinsics.h @@ -67,7 +67,7 @@ namespace GenISAIntrinsic { /// Thus the type array should two elements: /// Type Ts[2]{int2, int2}: to resolve to the first instance. /// Type Ts[2]{int4, int4}: to resolve to the second. -#if defined(ANDROID) || defined(__linux__) +#if defined(__GNUC__) __attribute__ ((visibility ("default"))) Function *getDeclaration(Module *M, ID id, ArrayRef OverloadedTys = None); #else Function *getDeclaration(Module *M, ID id, ArrayRef OverloadedTys = None); --- IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp.orig 2019-11-27 01:05:20 UTC +++ IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp @@ -65,9 +65,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #if defined(_WIN32 )|| defined( _WIN64 ) #include #include -#endif - -#if defined __linux__ +#elif !defined(__APPLE__) #include "iStdLib/File.h" #endif @@ -311,7 +309,7 @@ namespace FCL IGCBaseFolder = pathBuf; } -#elif defined __linux__ +#elif !defined(__APPLE__) if (!FCL_IGC_IS_FLAG_ENABLED(DumpToCustomDir)) { IGCBaseFolder = "/tmp/IntelIGC/"; @@ -387,7 +385,7 @@ namespace FCL iSTD::CreateAppOutputDir(pathBuf, 256, GetBaseIGCOutputFolder(), false, true, !FCL_IGC_IS_FLAG_ENABLED(ShaderDumpPidDisable)); g_shaderOutputFolder = pathBuf; } -#elif defined __linux__ +#elif !defined(__APPLE__) if (!FCL_IGC_IS_FLAG_ENABLED(DumpToCurrentDir) && g_shaderOutputFolder == "" && !FCL_IGC_IS_FLAG_ENABLED(DumpToCustomDir)) { bool needMkdir = true; --- IGC/common/LLVMWarningsPop.hpp.orig 2019-11-27 01:05:20 UTC +++ IGC/common/LLVMWarningsPop.hpp @@ -58,6 +58,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # pragma warning( pop ) #endif -#if defined(__linux__) +#if defined(__GNUC__) # pragma GCC diagnostic pop #endif ---- IGC/common/LLVMWarningsPush.hpp.orig 2019-11-27 01:05:20 UTC +--- IGC/common/LLVMWarningsPush.hpp.orig 2020-09-16 10:27:28 UTC +++ IGC/common/LLVMWarningsPush.hpp -@@ -55,13 +55,13 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +@@ -55,7 +55,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # pragma warning( push ) #endif -#if defined(__linux__) +#if defined(__GNUC__) # pragma GCC diagnostic push - #endif - - #include - --#if defined(__linux__) -+#if defined(__GNUC__) - # if __GNUC__ > 8 - # pragma GCC diagnostic ignored "-Winit-list-lifetime" - # endif + # if __GNUC__ > 8 + # pragma GCC diagnostic ignored "-Winit-list-lifetime" --- IGC/common/igc_regkeys.hpp.orig 2019-11-27 01:05:20 UTC +++ IGC/common/igc_regkeys.hpp @@ -39,7 +39,7 @@ typedef char debugString[256]; #define IGC_DEBUG_VARIABLES #endif -#if defined( __linux__ ) +#if !defined( __APPLE__ ) && !defined( _WIN32 ) #define IGC_DEBUG_VARIABLES #endif @@ -67,7 +67,7 @@ struct SRegKeyVariableMetaData } }; -#if defined ( __linux__ ) && !defined( _DEBUG ) && !defined( _INTERNAL ) +#if !defined ( _WIN32 ) && !defined( _DEBUG ) && !defined( _INTERNAL ) #define LINUX_RELEASE_MODE #endif ---- visa/BuildCISAIRImpl.cpp.orig 2020-08-18 09:36:43 UTC +--- visa/BuildCISAIRImpl.cpp.orig 2020-09-16 10:27:28 UTC +++ visa/BuildCISAIRImpl.cpp -@@ -568,7 +568,6 @@ extern void CISA_delete_buffer(YY_BUFFER_STATE buf); +@@ -576,7 +576,6 @@ extern void CISA_delete_buffer(YY_BUFFER_STATE buf); int CISA_IR_Builder::ParseVISAText(const std::string& visaHeader, const std::string& visaText, const std::string& visaTextFile) { -#if defined(__linux__) || defined(_WIN64) || defined(_WIN32) // Direct output of parser to null #if defined(_WIN64) || defined(_WIN32) CISAout = fopen("nul", "w"); -@@ -612,16 +611,11 @@ int CISA_IR_Builder::ParseVISAText(const std::string& +@@ -627,16 +626,11 @@ int CISA_IR_Builder::ParseVISAText(const std::string& } - return VISA_SUCCESS; + return status; -#else - assert(0 && "vISA asm parsing not supported on this platform"); - return VISA_FAILURE; -#endif } // Parses inline asm file from ShaderOverride int CISA_IR_Builder::ParseVISAText(const std::string& visaFile) { -#if defined(__linux__) || defined(_WIN64) || defined(_WIN32) // Direct output of parser to null #if defined(_WIN64) || defined(_WIN32) CISAout = fopen("nul", "w"); -@@ -647,10 +641,6 @@ int CISA_IR_Builder::ParseVISAText(const std::string& +@@ -662,10 +656,6 @@ int CISA_IR_Builder::ParseVISAText(const std::string& fclose(CISAout); } return VISA_SUCCESS; -#else - assert(0 && "Asm parsing not supported on this platform"); - return VISA_FAILURE; -#endif } // default size of the kernel mem manager in bytes