mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
Merge topic 'add-xlclang'
d9d285c5adjsoncpp: Fix include order for build within CMake0d489fab19libuv: fix atomic ops compilation with xlclang1699f5c231Utilities: Suppress warnings in third-party code when using XLClangf709089d84XLClang: Extract compiler implicit include directories5c41386357XLClang: Add policy CMP0089 to present as XL for compatibility8278237933XL: Remove overlap with the new XLClang compiler ID6f5cf2d2c6XL: Revert "Recognize compilers identified by __ibmxl__"90c6156aa8XLClang: Add a new compiler ID for the clang-based XL compiler ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2921
This commit is contained in:
@@ -51,6 +51,14 @@ The :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` variable may also be used
|
||||
to determine whether to report an error on use of deprecated macros or
|
||||
functions.
|
||||
|
||||
Policies Introduced by CMake 3.15
|
||||
=================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
CMP0089: Compiler id for IBM Clang-based XL compilers is now XLClang. </policy/CMP0089>
|
||||
|
||||
Policies Introduced by CMake 3.14
|
||||
=================================
|
||||
|
||||
|
||||
30
Help/policy/CMP0089.rst
Normal file
30
Help/policy/CMP0089.rst
Normal file
@@ -0,0 +1,30 @@
|
||||
CMP0089
|
||||
-------
|
||||
|
||||
Compiler id for IBM Clang-based XL compilers is now ``XLClang``.
|
||||
|
||||
CMake 3.15 and above recognize that IBM's Clang-based XL compilers
|
||||
that define ``__ibmxl__`` are a new front-end distinct from ``xlc``
|
||||
with a different command line and set of capabilities.
|
||||
CMake now prefers to present this to projects by setting the
|
||||
:variable:`CMAKE_<LANG>_COMPILER_ID` variable to ``XLClang`` instead
|
||||
of ``XL``. However, existing projects may assume the compiler id for
|
||||
Clang-based XL is just ``XL`` as it was in CMake versions prior to 3.15.
|
||||
Therefore this policy determines for Clang-based XL compilers which
|
||||
compiler id to report in the :variable:`CMAKE_<LANG>_COMPILER_ID`
|
||||
variable after language ``<LANG>`` is enabled by the :command:`project`
|
||||
or :command:`enable_language` command. The policy must be set prior
|
||||
to the invocation of either command.
|
||||
|
||||
The OLD behavior for this policy is to use compiler id ``XL``. The
|
||||
NEW behavior for this policy is to use compiler id ``XLClang``.
|
||||
|
||||
This policy was introduced in CMake version 3.15. Use the
|
||||
:command:`cmake_policy` command to set this policy to OLD or NEW explicitly.
|
||||
Unlike most policies, CMake version |release| does *not* warn
|
||||
by default when this policy is not set and simply uses OLD behavior.
|
||||
See documentation of the
|
||||
:variable:`CMAKE_POLICY_WARNING_CMP0089 <CMAKE_POLICY_WARNING_CMP<NNNN>>`
|
||||
variable to control the warning.
|
||||
|
||||
.. include:: DEPRECATED.txt
|
||||
5
Help/release/dev/add-xlclang.rst
Normal file
5
Help/release/dev/add-xlclang.rst
Normal file
@@ -0,0 +1,5 @@
|
||||
add-xlclang
|
||||
-----------
|
||||
|
||||
* IBM Clang-based XL compilers that define ``__ibmxl__`` now use the
|
||||
compiler id ``XLClang`` instead of ``XL``. See policy :policy:`CMP0089`.
|
||||
@@ -21,6 +21,8 @@ warn by default:
|
||||
policy :policy:`CMP0067`.
|
||||
* ``CMAKE_POLICY_WARNING_CMP0082`` controls the warning for
|
||||
policy :policy:`CMP0082`.
|
||||
* ``CMAKE_POLICY_WARNING_CMP0089`` controls the warning for
|
||||
policy :policy:`CMP0089`.
|
||||
|
||||
This variable should not be set by a project in CMake code. Project
|
||||
developers running CMake may set this variable in their cache to
|
||||
|
||||
@@ -57,6 +57,7 @@ function(compiler_id_detection outvar lang)
|
||||
HP
|
||||
Compaq
|
||||
zOS
|
||||
XLClang
|
||||
XL
|
||||
VisualAge
|
||||
PGI
|
||||
|
||||
@@ -92,13 +92,15 @@ function(cmake_parse_implicit_include_line line lang id_var log_var state_var)
|
||||
endif()
|
||||
|
||||
# XL compiler
|
||||
if("${CMAKE_${lang}_COMPILER_ID}" STREQUAL "XL" AND "${line}" MATCHES "^/"
|
||||
if(("${CMAKE_${lang}_COMPILER_ID}" STREQUAL "XL"
|
||||
OR "${CMAKE_${lang}_COMPILER_ID}" STREQUAL "XLClang")
|
||||
AND "${line}" MATCHES "^/"
|
||||
AND ( ("${lang}" STREQUAL "Fortran" AND
|
||||
"${line}" MATCHES "/xl[fF]entry " AND
|
||||
"${line}" MATCHES "OSVAR\\([^ ]+\\)")
|
||||
OR
|
||||
( ("${lang}" STREQUAL "C" OR "${lang}" STREQUAL "CXX") AND
|
||||
"${line}" MATCHES "/xl[cC]entry " AND
|
||||
"${line}" MATCHES "/xl[cC]2?entry " AND
|
||||
"${line}" MATCHES " -qosvar=")
|
||||
) )
|
||||
# -qnostdinc cancels other stdinc flags, even if present
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
|
||||
set(_compiler_id_version_compute "
|
||||
# if defined(__ibmxl__)
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__ibmxl_version__)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__ibmxl_release__)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__ibmxl_modification__)
|
||||
# define @PREFIX@COMPILER_VERSION_TWEAK @MACRO_DEC@(__ibmxl_ptf_fix_level__)
|
||||
# else
|
||||
/* __IBMC__ = VRP */
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__IBMC__/100)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__IBMC__/10 % 10)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__IBMC__ % 10)
|
||||
# endif
|
||||
")
|
||||
/* __IBMC__ = VRP */
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__IBMC__/100)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__IBMC__/10 % 10)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__IBMC__ % 10)")
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
|
||||
set(_compiler_id_version_compute "
|
||||
# if defined(__ibmxl__)
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__ibmxl_version__)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__ibmxl_release__)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__ibmxl_modification__)
|
||||
# define @PREFIX@COMPILER_VERSION_TWEAK @MACRO_DEC@(__ibmxl_ptf_fix_level__)
|
||||
# else
|
||||
/* __IBMCPP__ = VRP */
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__IBMCPP__/100)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__IBMCPP__/10 % 10)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__IBMCPP__ % 10)
|
||||
# endif
|
||||
")
|
||||
/* __IBMCPP__ = VRP */
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__IBMCPP__/100)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__IBMCPP__/10 % 10)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__IBMCPP__ % 10)")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
set(_compiler_id_pp_test "defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800)")
|
||||
set(_compiler_id_pp_test "defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/IBMCPP-C-DetermineVersionInternal.cmake")
|
||||
|
||||
@@ -6,36 +6,15 @@ string(APPEND CMAKE_C_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
|
||||
# -qthreaded = Ensures that all optimizations will be thread-safe
|
||||
string(APPEND CMAKE_C_FLAGS_INIT " -qthreaded")
|
||||
|
||||
# XL v13.1.1 for Linux ppc64 little-endian switched to using a clang based
|
||||
# front end and accepts the -std= option while only reserving -qlanglevel= for
|
||||
# compatibility. All other versions (previous versions on Linux ppc64
|
||||
# little-endian, all versions on Linux ppc64 big-endian, all versions on AIX
|
||||
# and BGQ, etc) are derived from the UNIX compiler and only accept the
|
||||
# -qlanglvl option.
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1)
|
||||
if (CMAKE_SYSTEM MATCHES "Linux.*ppc64le" AND
|
||||
CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1)
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c89")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89")
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.2)
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
|
||||
else ()
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-qlanglvl=extc1x")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-qlanglvl=extc1x")
|
||||
endif ()
|
||||
else ()
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-qlanglvl=stdc89")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-qlanglvl=extc89")
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "-qlanglvl=stdc99")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-qlanglvl=extc99")
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12.1)
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-qlanglvl=extc1x")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-qlanglvl=extc1x")
|
||||
endif ()
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-qlanglvl=stdc89")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-qlanglvl=extc89")
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "-qlanglvl=stdc99")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-qlanglvl=extc99")
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12.1)
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-qlanglvl=extc1x")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-qlanglvl=extc1x")
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
__compiler_check_default_language_standard(C 10.1 90)
|
||||
__compiler_check_default_language_standard(C 10.1 90 11.1 99)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
set(_compiler_id_pp_test "defined(__ibmxl__) || (defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800)")
|
||||
set(_compiler_id_pp_test "defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/IBMCPP-CXX-DetermineVersionInternal.cmake")
|
||||
|
||||
@@ -6,41 +6,16 @@ string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
|
||||
# -qthreaded = Ensures that all optimizations will be thread-safe
|
||||
string(APPEND CMAKE_CXX_FLAGS_INIT " -qthreaded")
|
||||
|
||||
# XL v13.1.1 for Linux ppc64 little-endian switched to using a clang based
|
||||
# front end and accepts the -std= option while only reserving -qlanglevel= for
|
||||
# compatibility. All other versions (previous versions on Linux ppc64
|
||||
# little-endian, all versions on Linux ppc64 big-endian, all versions on AIX
|
||||
# and BGQ, etc) are derived from the UNIX compiler and only accept the
|
||||
# -qlanglvl option.
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1)
|
||||
if (CMAKE_SYSTEM MATCHES "Linux.*ppc64")
|
||||
if (CMAKE_SYSTEM MATCHES "Linux.*ppc64le" AND
|
||||
CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1)
|
||||
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
|
||||
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.2)
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-qlanglvl=extended1y")
|
||||
else ()
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
endif ()
|
||||
else ()
|
||||
# The non-clang based Linux ppc64 compiler, both big-endian and
|
||||
# little-endian lacks, the non-extension language level flags
|
||||
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-qlanglvl=extended")
|
||||
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-qlanglvl=extended")
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
endif ()
|
||||
else ()
|
||||
if(CMAKE_SYSTEM MATCHES "Linux")
|
||||
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
|
||||
else()
|
||||
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-qlanglvl=strict98")
|
||||
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-qlanglvl=extended")
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
endif ()
|
||||
endif()
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
endif ()
|
||||
|
||||
__compiler_check_default_language_standard(CXX 10.1 98)
|
||||
|
||||
@@ -10,12 +10,6 @@ set(__COMPILER_XL 1)
|
||||
|
||||
include(Compiler/CMakeCommonCompilerMacros)
|
||||
|
||||
# Find the CreateExportList program that comes with this toolchain.
|
||||
find_program(CMAKE_XL_CreateExportList
|
||||
NAMES CreateExportList
|
||||
DOC "IBM XL CreateExportList tool"
|
||||
)
|
||||
|
||||
macro(__compiler_xl lang)
|
||||
# Feature flags.
|
||||
set(CMAKE_${lang}_VERBOSE_FLAG "-V")
|
||||
@@ -35,20 +29,4 @@ macro(__compiler_xl lang)
|
||||
set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
|
||||
|
||||
set(CMAKE_DEPFILE_FLAGS_${lang} "-MF <DEPFILE> -qmakedep=gcc")
|
||||
|
||||
# CMAKE_XL_CreateExportList is part of the AIX XL compilers but not the linux ones.
|
||||
# If we found the tool, we'll use it to create exports, otherwise stick with the regular
|
||||
# create shared library compile line.
|
||||
if (CMAKE_XL_CreateExportList)
|
||||
# The compiler front-end passes all object files, archive files, and shared
|
||||
# library files named on the command line to CreateExportList to create a
|
||||
# list of all symbols to be exported from the shared library. This causes
|
||||
# all archive members to be copied into the shared library whether they are
|
||||
# needed or not. Instead we run the tool ourselves to pass only the object
|
||||
# files so that we export only the symbols actually provided by the sources.
|
||||
set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
|
||||
"${CMAKE_XL_CreateExportList} <OBJECT_DIR>/objects.exp <OBJECTS>"
|
||||
"<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> -Wl,-bE:<OBJECT_DIR>/objects.exp <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
|
||||
)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
8
Modules/Compiler/XLClang-C-DetermineCompiler.cmake
Normal file
8
Modules/Compiler/XLClang-C-DetermineCompiler.cmake
Normal file
@@ -0,0 +1,8 @@
|
||||
set(_compiler_id_pp_test "defined(__ibmxl__) && defined(__clang__)")
|
||||
|
||||
set(_compiler_id_version_compute "
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__ibmxl_version__)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__ibmxl_release__)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__ibmxl_modification__)
|
||||
# define @PREFIX@COMPILER_VERSION_TWEAK @MACRO_DEC@(__ibmxl_ptf_fix_level__)
|
||||
")
|
||||
17
Modules/Compiler/XLClang-C.cmake
Normal file
17
Modules/Compiler/XLClang-C.cmake
Normal file
@@ -0,0 +1,17 @@
|
||||
include(Compiler/XLClang)
|
||||
__compiler_xlclang(C)
|
||||
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1)
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c89")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89")
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-qlanglvl=extc1x")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-qlanglvl=extc1x")
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.2)
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
__compiler_check_default_language_standard(C 13.1.1 99)
|
||||
8
Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
Normal file
8
Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
Normal file
@@ -0,0 +1,8 @@
|
||||
set(_compiler_id_pp_test "defined(__ibmxl__) && defined(__clang__)")
|
||||
|
||||
set(_compiler_id_version_compute "
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__ibmxl_version__)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__ibmxl_release__)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__ibmxl_modification__)
|
||||
# define @PREFIX@COMPILER_VERSION_TWEAK @MACRO_DEC@(__ibmxl_ptf_fix_level__)
|
||||
")
|
||||
20
Modules/Compiler/XLClang-CXX.cmake
Normal file
20
Modules/Compiler/XLClang-CXX.cmake
Normal file
@@ -0,0 +1,20 @@
|
||||
include(Compiler/XLClang)
|
||||
__compiler_xlclang(CXX)
|
||||
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1)
|
||||
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x")
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.2)
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
__compiler_check_default_language_standard(CXX 13.1.1 98)
|
||||
|
||||
set(CMAKE_CXX_COMPILE_OBJECT
|
||||
"<CMAKE_CXX_COMPILER> -x c++ <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
|
||||
22
Modules/Compiler/XLClang.cmake
Normal file
22
Modules/Compiler/XLClang.cmake
Normal file
@@ -0,0 +1,22 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
if(__COMPILER_XLCLANG)
|
||||
return()
|
||||
endif()
|
||||
set(__COMPILER_XLCLANG 1)
|
||||
|
||||
include(Compiler/XL)
|
||||
|
||||
macro(__compiler_xlclang lang)
|
||||
__compiler_xl(${lang})
|
||||
|
||||
# Feature flags.
|
||||
set(CMAKE_${lang}_VERBOSE_FLAG "-V")
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC")
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIC")
|
||||
set(CMAKE_${lang}_RESPONSE_FILE_FLAG "@")
|
||||
set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "@")
|
||||
endmacro()
|
||||
@@ -25,4 +25,26 @@ macro(__aix_compiler_xl lang)
|
||||
set(CMAKE_SHARED_MODULE_${lang}_FLAGS " ")
|
||||
|
||||
set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath")
|
||||
|
||||
# Find the CreateExportList program that comes with this toolchain.
|
||||
find_program(CMAKE_XL_CreateExportList
|
||||
NAMES CreateExportList
|
||||
DOC "IBM XL CreateExportList tool"
|
||||
)
|
||||
|
||||
# CMAKE_XL_CreateExportList is part of the AIX XL compilers but not the linux ones.
|
||||
# If we found the tool, we'll use it to create exports, otherwise stick with the regular
|
||||
# create shared library compile line.
|
||||
if (CMAKE_XL_CreateExportList)
|
||||
# The compiler front-end passes all object files, archive files, and shared
|
||||
# library files named on the command line to CreateExportList to create a
|
||||
# list of all symbols to be exported from the shared library. This causes
|
||||
# all archive members to be copied into the shared library whether they are
|
||||
# needed or not. Instead we run the tool ourselves to pass only the object
|
||||
# files so that we export only the symbols actually provided by the sources.
|
||||
set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
|
||||
"${CMAKE_XL_CreateExportList} <OBJECT_DIR>/objects.exp <OBJECTS>"
|
||||
"<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> -Wl,-bE:<OBJECT_DIR>/objects.exp <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
|
||||
)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
2
Modules/Platform/AIX-XLClang-C.cmake
Normal file
2
Modules/Platform/AIX-XLClang-C.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
include(Platform/AIX-XLClang)
|
||||
__aix_compiler_xlclang(C)
|
||||
2
Modules/Platform/AIX-XLClang-CXX.cmake
Normal file
2
Modules/Platform/AIX-XLClang-CXX.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
include(Platform/AIX-XLClang)
|
||||
__aix_compiler_xlclang(CXX)
|
||||
15
Modules/Platform/AIX-XLClang.cmake
Normal file
15
Modules/Platform/AIX-XLClang.cmake
Normal file
@@ -0,0 +1,15 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
if(__AIX_COMPILER_XLCLANG)
|
||||
return()
|
||||
endif()
|
||||
set(__AIX_COMPILER_XLCLANG 1)
|
||||
|
||||
include(Platform/AIX-XL)
|
||||
|
||||
macro(__aix_compiler_xlclang lang)
|
||||
__aix_compiler_xl(${lang})
|
||||
endmacro()
|
||||
@@ -956,6 +956,36 @@ void cmGlobalGenerator::CheckCompilerIdCompatibility(
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (strcmp(compilerId, "XLClang") == 0) {
|
||||
switch (mf->GetPolicyStatus(cmPolicies::CMP0089)) {
|
||||
case cmPolicies::WARN:
|
||||
if (!this->CMakeInstance->GetIsInTryCompile() &&
|
||||
mf->PolicyOptionalWarningEnabled("CMAKE_POLICY_WARNING_CMP0089")) {
|
||||
std::ostringstream w;
|
||||
/* clang-format off */
|
||||
w << cmPolicies::GetPolicyWarning(cmPolicies::CMP0089) << "\n"
|
||||
"Converting " << lang <<
|
||||
" compiler id \"XLClang\" to \"XL\" for compatibility."
|
||||
;
|
||||
/* clang-format on */
|
||||
mf->IssueMessage(MessageType::AUTHOR_WARNING, w.str());
|
||||
}
|
||||
CM_FALLTHROUGH;
|
||||
case cmPolicies::OLD:
|
||||
// OLD behavior is to convert XLClang to XL.
|
||||
mf->AddDefinition(compilerIdVar, "XL");
|
||||
break;
|
||||
case cmPolicies::REQUIRED_IF_USED:
|
||||
case cmPolicies::REQUIRED_ALWAYS:
|
||||
mf->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmPolicies::GetRequiredPolicyError(cmPolicies::CMP0089));
|
||||
case cmPolicies::NEW:
|
||||
// NEW behavior is to keep AppleClang.
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::string cmGlobalGenerator::GetLanguageOutputExtension(
|
||||
|
||||
@@ -261,7 +261,10 @@ class cmMakefile;
|
||||
3, 14, 0, cmPolicies::WARN) \
|
||||
SELECT(POLICY, CMP0088, \
|
||||
"FindBISON runs bison in CMAKE_CURRENT_BINARY_DIR when executing.", \
|
||||
3, 14, 0, cmPolicies::WARN)
|
||||
3, 14, 0, cmPolicies::WARN) \
|
||||
SELECT(POLICY, CMP0089, \
|
||||
"Compiler id for IBM Clang-based XL compilers is now XLClang.", 3, \
|
||||
15, 0, cmPolicies::WARN)
|
||||
|
||||
#define CM_SELECT_ID(F, A1, A2, A3, A4, A5, A6) F(A1)
|
||||
#define CM_FOR_EACH_POLICY_ID(POLICY) \
|
||||
|
||||
@@ -10,6 +10,7 @@ project(Minimal NONE)
|
||||
#
|
||||
set(targets
|
||||
aix-C-XL-13.1.3 aix-CXX-XL-13.1.3
|
||||
aix-C-XLClang-16.1.0.1 aix-CXX-XLClang-16.1.0.1
|
||||
craype-C-Cray-8.7 craype-CXX-Cray-8.7 craype-Fortran-Cray-8.7
|
||||
craype-C-GNU-7.3.0 craype-CXX-GNU-7.3.0 craype-Fortran-GNU-7.3.0
|
||||
craype-C-Intel-18.0.2.20180210 craype-CXX-Intel-18.0.2.20180210
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
#
|
||||
|
||||
cmake_minimum_required(VERSION 3.3)
|
||||
if(POLICY CMP0089)
|
||||
cmake_policy(SET CMP0089 NEW)
|
||||
endif()
|
||||
|
||||
set(lngs C CXX)
|
||||
set(LANGUAGES "${lngs}" CACHE STRING "List of languages to generate inputs for")
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
CMAKE_LANG=C
|
||||
CMAKE_C_COMPILER_ABI=
|
||||
CMAKE_C_COMPILER_AR=
|
||||
CMAKE_C_COMPILER_ARCHITECTURE_ID=
|
||||
CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
|
||||
CMAKE_C_COMPILER_ID=XLClang
|
||||
CMAKE_C_COMPILER_LAUNCHER=
|
||||
CMAKE_C_COMPILER_LOADED=1
|
||||
CMAKE_C_COMPILER_RANLIB=
|
||||
CMAKE_C_COMPILER_TARGET=
|
||||
CMAKE_C_COMPILER_VERSION=16.1.0.1
|
||||
CMAKE_C_COMPILER_VERSION_INTERAL=
|
||||
Change Dir: /tmp/ii/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command(s):/usr/bin/gmake cmTC_fcf21/fast
|
||||
/usr/bin/gmake -f CMakeFiles/cmTC_fcf21.dir/build.make CMakeFiles/cmTC_fcf21.dir/build
|
||||
gmake[1]: Entering directory '/tmp/ii/CMakeFiles/CMakeTmp'
|
||||
Building C object CMakeFiles/cmTC_fcf21.dir/CMakeCCompilerABI.c.o
|
||||
/opt/IBM/xlC/16.1.0/bin/xlclang -V -o CMakeFiles/cmTC_fcf21.dir/CMakeCCompilerABI.c.o -c /tmp/CMake/Modules/CMakeCCompilerABI.c
|
||||
export XL_CONFIG=/opt/IBM/xlc/16.1.0/etc/xlc.cfg.72:xlclang
|
||||
export XL_ASMOBJFILES=/tmp/xlcASuz87id
|
||||
export "XL_DIS=/opt/IBM/xlc/16.1.0/exe/dis -o "CMakeFiles/cmTC_fcf21.dir/CMakeCCompilerABI.c.o" "CMakeCCompilerABI.o""
|
||||
/opt/IBM/xlC/16.1.0/exe/xlC2entry -qosvar=aix.7.2 -qalias=ansi -qthreaded -D_THREAD_SAFE -Wno-parentheses -Wno-unused-value -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX50 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_AIX71 -D_AIX72 -D_IBMR2 -D_POWER -xc -qasm_as=/bin/as -qc_stdinc=/opt/IBM/xlC/16.1.0/include2:/opt/IBM/xlC/16.1.0/include2/aix:/opt/IBM/xlmass/9.1.0/include:/usr/include -qvac_include_path=/opt/IBM/xlc/16.1.0/include -oCMakeFiles/cmTC_fcf21.dir/CMakeCCompilerABI.c.o /tmp/CMake/Modules/CMakeCCompilerABI.c /tmp/xlcW0tZ87ia /tmp/xlcW1ub87ib /dev/null /tmp/xlcLu487ieF.lst /dev/null /tmp/xlcW2uj87ic
|
||||
export XL_BACKEND=/opt/IBM/xlc/16.1.0/exe/xlCcode
|
||||
export XL_LINKER=/bin/ld
|
||||
/opt/IBM/xlc/16.1.0/exe/xlCcode -qalias=ansi -qthreaded /tmp/xlcW0tZ87ia /tmp/xlcW1ub87ib CMakeFiles/cmTC_fcf21.dir/CMakeCCompilerABI.c.o /tmp/xlcLu487ieB.lst /tmp/xlcW2uj87ic
|
||||
rm /tmp/xlcASuz87id
|
||||
rm /tmp/xlcLu487ie
|
||||
rm /tmp/xlcW0tZ87ia
|
||||
rm /tmp/xlcW1ub87ib
|
||||
rm /tmp/xlcW2uj87ic
|
||||
Linking C executable cmTC_fcf21
|
||||
/tmp/CMake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fcf21.dir/link.txt --verbose=1
|
||||
/opt/IBM/xlC/16.1.0/bin/xlclang -Wl,-bnoipath -Wl,-brtl -V -Wl,-bexpall CMakeFiles/cmTC_fcf21.dir/CMakeCCompilerABI.c.o -o cmTC_fcf21 -Wl,-blibpath:/usr/lib:/lib
|
||||
export XL_CONFIG=/opt/IBM/xlc/16.1.0/etc/xlc.cfg.72:xlclang
|
||||
/bin/ld -b32 /lib/crt0.o -bpT:0x10000000 -bpD:0x20000000 -bnoipath -brtl -bexpall CMakeFiles/cmTC_fcf21.dir/CMakeCCompilerABI.c.o -o cmTC_fcf21 -blibpath:/usr/lib:/lib -L/opt/IBM/xlmass/9.1.0/lib/aix61 -L/opt/IBM/xlc/16.1.0/lib -lxlopt -lxlipa -lxl -lc -lpthreads
|
||||
rm /tmp/xlcW0vJG7ia
|
||||
rm /tmp/xlcW1vNG7ib
|
||||
rm /tmp/xlcW2vRG7ic
|
||||
gmake[1]: Leaving directory '/tmp/ii/CMakeFiles/CMakeTmp'
|
||||
@@ -0,0 +1 @@
|
||||
/opt/IBM/xlC/16.1.0/include2;/opt/IBM/xlC/16.1.0/include2/aix;/opt/IBM/xlmass/9.1.0/include;/usr/include
|
||||
@@ -0,0 +1,44 @@
|
||||
CMAKE_LANG=CXX
|
||||
CMAKE_CXX_COMPILER_ABI=
|
||||
CMAKE_CXX_COMPILER_AR=
|
||||
CMAKE_CXX_COMPILER_ARCHITECTURE_ID=
|
||||
CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
|
||||
CMAKE_CXX_COMPILER_ID=XLClang
|
||||
CMAKE_CXX_COMPILER_LAUNCHER=
|
||||
CMAKE_CXX_COMPILER_LOADED=1
|
||||
CMAKE_CXX_COMPILER_RANLIB=
|
||||
CMAKE_CXX_COMPILER_TARGET=
|
||||
CMAKE_CXX_COMPILER_VERSION=16.1.0.1
|
||||
CMAKE_CXX_COMPILER_VERSION_INTERAL=
|
||||
Change Dir: /tmp/ii/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command(s):/usr/bin/gmake cmTC_b8490/fast
|
||||
/usr/bin/gmake -f CMakeFiles/cmTC_b8490.dir/build.make CMakeFiles/cmTC_b8490.dir/build
|
||||
gmake[1]: Entering directory '/tmp/ii/CMakeFiles/CMakeTmp'
|
||||
Building CXX object CMakeFiles/cmTC_b8490.dir/CMakeCXXCompilerABI.cpp.o
|
||||
/opt/IBM/xlC/16.1.0/bin/xlclang++ -x c++ -V -o CMakeFiles/cmTC_b8490.dir/CMakeCXXCompilerABI.cpp.o -c /tmp/CMake/Modules/CMakeCXXCompilerABI.cpp
|
||||
export XL_CONFIG=/opt/IBM/xlc/16.1.0/etc/xlc.cfg.72:xlclang++
|
||||
export XL_XLCMP_PATH=/opt/IBM/xlc/16.1.0:/opt/IBM/xlC/16.1.0
|
||||
export XL_COMPILER=xlc++
|
||||
export XL_ASMOBJFILES=/tmp/xlcAS3IXqid
|
||||
export "XL_DIS=/opt/IBM/xlc/16.1.0/exe/dis -o "CMakeFiles/cmTC_b8490.dir/CMakeCXXCompilerABI.cpp.o" "CMakeCXXCompilerABI.o""
|
||||
/opt/IBM/xlC/16.1.0/exe/xlC2entry -qosvar=aix.7.2 -qalias=ansi -qthreaded -D_THREAD_SAFE -Wno-parentheses -Wno-unused-value -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX50 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_AIX71 -D_AIX72 -D_IBMR2 -D_POWER -xc++ -qasm_as=/bin/as -qcpp_stdinc=/opt/IBM/xlC/16.1.0/include2/c++:/opt/IBM/xlC/16.1.0/include2:/opt/IBM/xlC/16.1.0/include2/aix:/opt/IBM/xlmass/9.1.0/include:/usr/include -qc_stdinc=/opt/IBM/xlC/16.1.0/include2:/opt/IBM/xlC/16.1.0/include2/aix:/opt/IBM/xlmass/9.1.0/include:/usr/include -oCMakeFiles/cmTC_b8490.dir/CMakeCXXCompilerABI.cpp.o /tmp/CMake/Modules/CMakeCXXCompilerABI.cpp /tmp/xlcW03uXqia /tmp/xlcW137Xqib /dev/null /tmp/xlcL3QXqieF.lst /dev/null /tmp/xlcW23AXqic
|
||||
export XL_BACKEND=/opt/IBM/xlc/16.1.0/exe/xlCcode
|
||||
export XL_LINKER=/bin/ld
|
||||
/opt/IBM/xlc/16.1.0/exe/xlCcode -qalias=ansi -qthreaded /tmp/xlcW03uXqia /tmp/xlcW137Xqib CMakeFiles/cmTC_b8490.dir/CMakeCXXCompilerABI.cpp.o /tmp/xlcL3QXqieB.lst /tmp/xlcW23AXqic
|
||||
rm /tmp/xlcAS3IXqid
|
||||
rm /tmp/xlcL3QXqie
|
||||
rm /tmp/xlcW03uXqia
|
||||
rm /tmp/xlcW137Xqib
|
||||
rm /tmp/xlcW23AXqic
|
||||
Linking CXX executable cmTC_b8490
|
||||
/tmp/CMake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b8490.dir/link.txt --verbose=1
|
||||
/opt/IBM/xlC/16.1.0/bin/xlclang++ -Wl,-bnoipath -Wl,-brtl -V -Wl,-bexpall CMakeFiles/cmTC_b8490.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_b8490 -Wl,-blibpath:/usr/lib:/lib
|
||||
export XL_CONFIG=/opt/IBM/xlc/16.1.0/etc/xlc.cfg.72:xlclang++
|
||||
/bin/ld -b32 /lib/crt0.o /lib/crti.o -bpT:0x10000000 -bpD:0x20000000 -bnoipath -brtl -bexpall CMakeFiles/cmTC_b8490.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_b8490 -blibpath:/usr/lib:/lib -bcdtors:all:0:s -btmplrename -L/opt/IBM/xlmass/9.1.0/lib/aix61 -L/opt/IBM/xlc/16.1.0/lib -lxlopt -lxlipa -lxl -L/opt/IBM/xlC/16.1.0/lib -lc++ -lCcore -lpthreads -lm -lc |
|
||||
/opt/IBM/xlC/16.1.0/bin/c++filt -S |
|
||||
/bin/sed '/317.*::virtual-fn-table-ptr$/ s/^\(.*: \)*{*\([^}]*\)\(}*.*\)::virtual-fn-table-ptr$/\1Virtual table for class "\2": Some possible causes are: first non-inline virtual function in "\2" is not defined or the class is a template instantiation and an explicit instantiation definition of the class is missing./'
|
||||
rm /tmp/xlcW05fS7ia
|
||||
rm /tmp/xlcW15rS7ib
|
||||
rm /tmp/xlcW25vS7ic
|
||||
gmake[1]: Leaving directory '/tmp/ii/CMakeFiles/CMakeTmp'
|
||||
@@ -0,0 +1 @@
|
||||
/opt/IBM/xlC/16.1.0/include2/c++;/opt/IBM/xlC/16.1.0/include2;/opt/IBM/xlC/16.1.0/include2/aix;/opt/IBM/xlmass/9.1.0/include;/usr/include
|
||||
@@ -77,7 +77,7 @@ endif(APPLE)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -2,7 +2,7 @@ project(JsonCpp CXX)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -woffall")
|
||||
|
||||
@@ -5,13 +5,14 @@
|
||||
|
||||
#ifndef JSON_CONFIG_H_INCLUDED
|
||||
#define JSON_CONFIG_H_INCLUDED
|
||||
#include <stddef.h>
|
||||
#include <string> //typedef String
|
||||
#include <stdint.h> //typedef int64_t, uint64_t
|
||||
|
||||
// Include KWSys Large File Support configuration.
|
||||
#include <cmsys/Configure.h>
|
||||
|
||||
#include <stddef.h>
|
||||
#include <string> //typedef String
|
||||
#include <stdint.h> //typedef int64_t, uint64_t
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# pragma warning(push,1)
|
||||
#endif
|
||||
|
||||
@@ -60,7 +60,7 @@ SET(CMAKE_REQUIRED_FLAGS)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -183,7 +183,7 @@ INCLUDE_DIRECTORIES(
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -2,7 +2,7 @@ project(librhash C)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -2,7 +2,7 @@ project(libuv C)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
@@ -37,7 +37,7 @@ UV_UNUSED(static int cmpxchgi(int* ptr, int oldval, int newval)) {
|
||||
: "r" (newval), "0" (oldval)
|
||||
: "memory");
|
||||
return out;
|
||||
#elif defined(_AIX) && defined(__xlC__)
|
||||
#elif defined(_AIX) && (defined(__xlC__) || defined(__ibmxl__))
|
||||
const int out = (*(volatile int*) ptr);
|
||||
__compare_and_swap(ptr, &oldval, newval);
|
||||
return out;
|
||||
@@ -63,7 +63,7 @@ UV_UNUSED(static long cmpxchgl(long* ptr, long oldval, long newval)) {
|
||||
: "r" (newval), "0" (oldval)
|
||||
: "memory");
|
||||
return out;
|
||||
#elif defined(_AIX) && defined(__xlC__)
|
||||
#elif defined(_AIX) && (defined(__xlC__) || defined(__ibmxl__))
|
||||
const long out = (*(volatile int*) ptr);
|
||||
# if defined(__64BIT__)
|
||||
__compare_and_swaplp(ptr, &oldval, newval);
|
||||
|
||||
@@ -2,7 +2,7 @@ PROJECT(CMZLIB)
|
||||
|
||||
# Disable warnings to avoid changing 3rd party code.
|
||||
if(CMAKE_C_COMPILER_ID MATCHES
|
||||
"^(GNU|Clang|AppleClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
"^(GNU|Clang|AppleClang|XLClang|XL|VisualAge|SunPro|HP|Intel)$")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "PathScale")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")
|
||||
|
||||
Reference in New Issue
Block a user