Title: [205672] trunk
- Revision
- 205672
- Author
- [email protected]
- Date
- 2016-09-08 15:54:51 -0700 (Thu, 08 Sep 2016)
Log Message
[CMake] Build failure with GCC 6 (fatal error: stdlib.h: No such file or directory)
https://bugs.webkit.org/show_bug.cgi?id=161697
Reviewed by Michael Catanzaro.
Get the list of system includes from GCC and add it to the CMake
list of implicit includes. This way, CMake will filter any of this
directories from the list of includes when calling the compiler.
This avoids an issue with GCC 6 that causes build failures when
including the default include path as a system include (-isystem).
* Source/cmake/OptionsCommon.cmake:
Modified Paths
Diff
Modified: trunk/ChangeLog (205671 => 205672)
--- trunk/ChangeLog 2016-09-08 22:33:36 UTC (rev 205671)
+++ trunk/ChangeLog 2016-09-08 22:54:51 UTC (rev 205672)
@@ -1,3 +1,19 @@
+2016-09-08 Carlos Alberto Lopez Perez <[email protected]>
+
+ [CMake] Build failure with GCC 6 (fatal error: stdlib.h: No such file or directory)
+ https://bugs.webkit.org/show_bug.cgi?id=161697
+
+ Reviewed by Michael Catanzaro.
+
+ Get the list of system includes from GCC and add it to the CMake
+ list of implicit includes. This way, CMake will filter any of this
+ directories from the list of includes when calling the compiler.
+
+ This avoids an issue with GCC 6 that causes build failures when
+ including the default include path as a system include (-isystem).
+
+ * Source/cmake/OptionsCommon.cmake:
+
2016-09-07 Michael Catanzaro <[email protected]>
[EFL] Switch to ENABLE_NETWORK_CACHE
Modified: trunk/Source/cmake/OptionsCommon.cmake (205671 => 205672)
--- trunk/Source/cmake/OptionsCommon.cmake 2016-09-08 22:33:36 UTC (rev 205671)
+++ trunk/Source/cmake/OptionsCommon.cmake 2016-09-08 22:54:51 UTC (rev 205672)
@@ -37,6 +37,33 @@
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics")
endif ()
+# Ensure that the default include system directories are added to the list of CMake implicit includes.
+# This workarounds an issue that happens when using GCC 6 and using system includes (-isystem).
+# For more details check: https://bugs.webkit.org/show_bug.cgi?id=161697
+macro(DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _compiler _flags _result)
+ file(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy" "\n")
+ separate_arguments(_buildFlags UNIX_COMMAND "${_flags}")
+ execute_process(COMMAND ${_compiler} ${_buildFlags} -v -E -x ${_lang} -dD dummy
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles OUTPUT_QUIET
+ ERROR_VARIABLE _gccOutput)
+ file(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy")
+ if ("${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list")
+ set(${_result} ${CMAKE_MATCH_1})
+ string(REPLACE "\n" " " ${_result} "${${_result}}")
+ separate_arguments(${_result})
+ endif ()
+endmacro()
+
+if (CMAKE_COMPILER_IS_GNUCC)
+ DETERMINE_GCC_SYSTEM_INCLUDE_DIRS("c" "${CMAKE_C_COMPILER}" "${CMAKE_C_FLAGS}" SYSTEM_INCLUDE_DIRS)
+ set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES} ${SYSTEM_INCLUDE_DIRS})
+endif ()
+
+if (CMAKE_COMPILER_IS_GNUCXX)
+ DETERMINE_GCC_SYSTEM_INCLUDE_DIRS("c++" "${CMAKE_CXX_COMPILER}" "${CMAKE_CXX_FLAGS}" SYSTEM_INCLUDE_DIRS)
+ set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES} ${SYSTEM_INCLUDE_DIRS})
+endif ()
+
# Detect Cortex-A53 core if CPU is ARM64 and OS is Linux.
# Query /proc/cpuinfo for each available core and check reported CPU part number: 0xd03 signals Cortex-A53.
# (see Main ID Register in ARM Cortex-A53 MPCore Processor Technical Reference Manual)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes