<p dir="ltr">Hi</p>
<p dir="ltr">No I'm not using ICC however that section prevents you using Clang, it basically says if not GCC then assumes Intel's compiler</p>
<p dir="ltr">Cheers</p>
<p dir="ltr">Mike</p>
<br><div class="gmail_quote"><div dir="ltr">On Fri, 22 Dec 2017, 3:04 pm Mao, David, <<a href="mailto:David.Mao@amd.com">David.Mao@amd.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word;line-break:after-white-space">
Hi Lothian,
<div>Thanks for testing out out driver!</div>
<div><span style="color:rgb(36,41,46);font-variant-ligatures:normal;background-color:rgb(255,255,255)">Officially we recommend you to stick to GCC5 for now, however, we do have a fix for the constexpr issue
 mentioned below that just didn’t make it to this first release.</span></div>
<div>According to your diff, are you using ICC?</div>
<div>Could you let us know the compiler version as well as your distro?</div>
<div><br>
</div>
<div>Thanks.</div>
<div>Best Regards,</div>
<div>David</div></div><div style="word-wrap:break-word;line-break:after-white-space"><div><br>
<div><br>
<blockquote type="cite">
<div>On Dec 22, 2017, at 9:48 PM, Mike Lothian <<a href="mailto:mike@fireburn.co.uk" target="_blank">mike@fireburn.co.uk</a>> wrote:</div>
<br class="m_-3388281588475979354Apple-interchange-newline">
<div>
<div dir="ltr">Congratulations on getting this out the door
<div><br>
</div>
<div>It didn't compile for me without these changes:</div>
<div><br>
</div>
<div>In pal:</div>
<div><br>
</div>
<div>
<div>diff --git a/src/util/math.cpp b/src/util/math.cpp</div>
<div>index 46e9ede..3af4259 100644</div>
<div>--- a/src/util/math.cpp</div>
<div>+++ b/src/util/math.cpp</div>
<div>@@ -54,7 +54,7 @@ static uint32 Float32ToFloatN(float f, const NBitFloatInfo& info);</div>
<div> static float FloatNToFloat32(uint32 fBits, const NBitFloatInfo& info);</div>
<div><br>
</div>
<div> // Initialize the descriptors for various N-bit floating point representations:</div>
<div>-static constexpr NBitFloatInfo Float16Info =</div>
<div>+static NBitFloatInfo Float16Info =</div>
<div> {</div>
<div>     16,                                                       // numBits</div>
<div>     10,                                                       // numFracBits</div>
<div>@@ -72,7 +72,7 @@ static constexpr NBitFloatInfo Float16Info =</div>
<div>     (23 - 10),                                                // fracBitsDiff</div>
<div> };</div>
<div><br>
</div>
<div>-static constexpr NBitFloatInfo Float11Info =</div>
<div>+static NBitFloatInfo Float11Info =</div>
<div> {</div>
<div>     11,                                                       // numBits</div>
<div>     6,                                                        // numFracBits</div>
<div>@@ -90,7 +90,7 @@ static constexpr NBitFloatInfo Float11Info =</div>
<div>     23 - 6,                                                   // fracBitsDiff</div>
<div> };</div>
<div><br>
</div>
<div>-static constexpr NBitFloatInfo Float10Info =</div>
<div>+static NBitFloatInfo Float10Info =</div>
<div> {</div>
<div>     10,                                                       // numBits</div>
<div>     5,                                                        // numFracBits</div>
</div>
<div><br>
</div>
<div>In xgl:</div>
<div><br>
</div>
<div>
<div>diff --git a/icd/CMakeLists.txt b/icd/CMakeLists.txt</div>
<div>index 4e4d669..5006184 100644</div>
<div>--- a/icd/CMakeLists.txt</div>
<div>+++ b/icd/CMakeLists.txt</div>
<div>@@ -503,16 +503,16 @@ if (UNIX)</div>
<div><br>
</div>
<div>     target_link_libraries(xgl PRIVATE c stdc++ ${CMAKE_DL_LIBS} pthread)</div>
<div><br>
</div>
<div>-    if(NOT ICD_USE_GCC)</div>
<div>-        message(WARNING "Intel ICC untested in CMake.")</div>
<div>-        target_link_libraries(xgl PRIVATE -fabi-version=0 -static-intel)</div>
<div>-    endif()</div>
<div>+    #if(NOT ICD_USE_GCC)</div>
<div>+    #    message(WARNING "Intel ICC untested in CMake.")</div>
<div>+    #    target_link_libraries(xgl PRIVATE -fabi-version=0 -static-intel)</div>
<div>+    #endif()</div>
<div><br>
</div>
<div>     if(CMAKE_BUILD_TYPE_RELEASE)</div>
<div>         if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")</div>
<div>             execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)</div>
<div>             if (GCC_VERSION VERSION_GREATER 5.3 OR GCC_VERSION VERSION_EQUAL 5.3)</div>
<div>-                target_link_libraries(xgl PRIVATE -flto=4  -fuse-linker-plugin -Wno-odr)</div>
<div>+                target_link_libraries(xgl PRIVATE -Wno-odr)</div>
<div>                 message(WARNING "LTO enabled for Linking")</div>
<div>             endif()</div>
<div>         endif()</div>
<div>@@ -530,17 +530,17 @@ if (UNIX)</div>
<div><br>
</div>
<div>     # CMAKE-TODO: What is whole-archive used for?</div>
<div>     #target_link_libraries(xgl -Wl,--whole-archive ${ICD_LIBS} -Wl,--no-whole-archive)</div>
<div>-    if(CMAKE_BUILD_TYPE_RELEASE)</div>
<div>-        execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)</div>
<div>-        if (GCC_VERSION VERSION_GREATER 5.3 OR GCC_VERSION VERSION_EQUAL 5.3)</div>
<div>-            target_link_libraries(xgl PRIVATE -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/src/libpal.a -Wl,--no-whole-archive)</div>
<div>-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/metrohash/libmetrohash.a -Wl,--no-whole-archive)</div>
<div>-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/gpuopen/libgpuopen.a -Wl,--no-whole-archive)</div>
<div>-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/vam/libvam.a -Wl,--no-whole-archive)</div>
<div>-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/addrlib/libaddrlib.a -Wl,--no-whole-archive)</div>
<div>-            target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/jemalloc/libjemalloc.a -Wl,--no-whole-archive)</div>
<div>-        endif()</div>
<div>-    endif()</div>
<div>+    #if(CMAKE_BUILD_TYPE_RELEASE)</div>
<div>+    #    execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)</div>
<div>+    #    if (GCC_VERSION VERSION_GREATER 5.3 OR GCC_VERSION VERSION_EQUAL 5.3)</div>
<div>+    #        target_link_libraries(xgl PRIVATE -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/src/libpal.a -Wl,--no-whole-archive)</div>
<div>+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/metrohash/libmetrohash.a -Wl,--no-whole-archive)</div>
<div>+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/gpuopen/libgpuopen.a -Wl,--no-whole-archive)</div>
<div>+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/vam/libvam.a -Wl,--no-whole-archive)</div>
<div>+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/addrlib/libaddrlib.a -Wl,--no-whole-archive)</div>
<div>+    #        target_link_libraries(xgl PUBLIC -Wl,--whole-archive ${PROJECT_BINARY_DIR}/pal/jemalloc/libjemalloc.a -Wl,--no-whole-archive)</div>
<div>+    #    endif()</div>
<div>+    #endif()</div>
<div><br>
</div>
<div>     #${ICD_TARGET}.so${SO_VERSION_NUMBER} : ${filter-out -Wl%,$(LLLIBS})</div>
<div>
<div><br>
</div>
<div><br>
</div>
<div>diff --git a/icd/api/llpc/util/llpcDebug.cpp b/icd/api/llpc/util/llpcDebug.cpp</div>
<div>index 1273cd6..847786e 100644</div>
<div>--- a/icd/api/llpc/util/llpcDebug.cpp</div>
<div>+++ b/icd/api/llpc/util/llpcDebug.cpp</div>
<div>@@ -113,7 +113,7 @@ bool EnableErrs()</div>
<div> // Translates enum "ResourceMappingNodeType" to string and output to ostream.</div>
<div> raw_ostream& operator<<(</div>
<div>     raw_ostream&                       out,   // [out] Output stream</div>
<div>-    enum class ResourceMappingNodeType type)  // Resource map node type</div>
<div>+    enum ResourceMappingNodeType type)  // Resource map node type</div>
<div> {</div>
<div>     const char* pString = nullptr;</div>
<div>     switch (type)</div>
</div>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div></div></blockquote></div>