Index: head/devel/intel-graphics-compiler/Makefile =================================================================== --- head/devel/intel-graphics-compiler/Makefile (revision 529129) +++ head/devel/intel-graphics-compiler/Makefile (revision 529130) @@ -1,51 +1,51 @@ # $FreeBSD$ PORTNAME= intel-graphics-compiler DISTVERSIONPREFIX= igc- -DISTVERSION= 1.0.3529 +DISTVERSION= 1.0.3586 CATEGORIES= devel 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 .if exists(/usr/lib/clang/10.0.0) && ${CXX} == c++ BROKEN= https://github.com/intel/intel-graphics-compiler/issues/126 .endif 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 CFLAGS+= -Wno-macro-redefined # __fastcall PLIST_SUB= ARCH_SUFX=${ARCH:S/i386/32/:S/amd//:S/x86_//} 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$$/; \ s/MAJOR}/&$${LLVM_VERSION_MINOR}/; }' \ ${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 529129) +++ head/devel/intel-graphics-compiler/distinfo (revision 529130) @@ -1,3 +1,3 @@ -TIMESTAMP = 1583564439 -SHA256 (intel-intel-graphics-compiler-igc-1.0.3529_GH0.tar.gz) = 74186169471e158f49ce50c3ad35b45e719d0c891cf1fa9ca73bf8f89624c607 -SIZE (intel-intel-graphics-compiler-igc-1.0.3529_GH0.tar.gz) = 6052777 +TIMESTAMP = 1584459331 +SHA256 (intel-intel-graphics-compiler-igc-1.0.3586_GH0.tar.gz) = e1b558a53f49deeb5a6e826ecbfd4e4b79bcfebb86316c64020134ca6aabfe8c +SIZE (intel-intel-graphics-compiler-igc-1.0.3586_GH0.tar.gz) = 6030000 Index: head/devel/intel-graphics-compiler/files/patch-unix =================================================================== --- head/devel/intel-graphics-compiler/files/patch-unix (revision 529129) +++ head/devel/intel-graphics-compiler/files/patch-unix (revision 529130) @@ -1,320 +1,309 @@ 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 2019-11-27 01:05:20 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 @@ -38,7 +38,7 @@ Abstract: Defines the types used for ELF headers/sect #include #endif -#if defined(__linux__) +#if !defined(__APPLE__) && !defined(_WIN32) #include "elf.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/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 @@ -55,13 +55,13 @@ 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 --- 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 ---- inc/common/Compiler/API/ShaderInstruction.h.orig 2019-11-27 01:05:20 UTC -+++ inc/common/Compiler/API/ShaderInstruction.h -@@ -39,7 +39,7 @@ namespace USC - class CShaderDebugLocationInfo; - } - --#if defined _DEBUG && !defined __linux__ -+#if defined _DEBUG && defined _WIN32 - #define USC_OPTIMIZING_COMPILER_TESTS - #endif - --- visa/BuildCISAIRImpl.cpp.orig 2020-01-09 09:46:51 UTC +++ visa/BuildCISAIRImpl.cpp @@ -684,7 +684,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"); @@ -746,16 +745,11 @@ int CISA_IR_Builder::ParseVISAText(const std::string& } return VISA_SUCCESS; -#else - assert(0 && "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"); @@ -781,10 +775,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