diff options
author | Martin Storsjö <martin@martin.st> | 2023-05-14 23:14:43 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2023-05-16 21:27:35 +0300 |
commit | 4072c8aee4c89c4457f4f30d01dc9bb4dfa52559 (patch) | |
tree | be79132ff157dfb99aa35efa1d83bc1054a5ed8e /openmp | |
parent | be556c838de06c3c2f69bf594996cace6ffa17eb (diff) | |
download | llvm-4072c8aee4c89c4457f4f30d01dc9bb4dfa52559.tar.gz |
[OpenMP] Compile assembly files as ASM, not C
Since CMake 3.20, CMake explicitly passes "-x c" (or equivalent)
when compiling a file which has been set as having the language
C. This behaviour change only takes place if "cmake_minimum_required"
is set to 3.20 or newer, or if the policy CMP0119 is set to new.
Attempting to compile assembly files with "-x c" fails, however
this is workarounded in many cases, as OpenMP overrides this with
"-x assembler-with-cpp", however this is only added for non-Windows
targets.
Thus, after increasing cmake_minimum_required to 3.20, this breaks
compiling the GNU assembly for Windows targets; the GNU assembly is
used for ARM and AArch64 Windows targets when building with Clang.
This patch unbreaks that.
Differential Revision: https://reviews.llvm.org/D150532
Diffstat (limited to 'openmp')
-rw-r--r-- | openmp/CMakeLists.txt | 2 | ||||
-rw-r--r-- | openmp/runtime/src/CMakeLists.txt | 2 |
2 files changed, 1 insertions, 3 deletions
diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt index 9f989266d6ae..04678cbd4f33 100644 --- a/openmp/CMakeLists.txt +++ b/openmp/CMakeLists.txt @@ -11,7 +11,7 @@ list(INSERT CMAKE_MODULE_PATH 0 # llvm/runtimes/ will set OPENMP_STANDALONE_BUILD. if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") set(OPENMP_STANDALONE_BUILD TRUE) - project(openmp C CXX) + project(openmp C CXX ASM) endif() # Must go below project(..) diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt index 0e778ec14536..bb5822264514 100644 --- a/openmp/runtime/src/CMakeLists.txt +++ b/openmp/runtime/src/CMakeLists.txt @@ -133,8 +133,6 @@ libomp_get_asmflags(LIBOMP_CONFIGURED_ASMFLAGS) # Set the compiler flags for each type of source set_source_files_properties(${LIBOMP_CXXFILES} PROPERTIES COMPILE_FLAGS "${LIBOMP_CONFIGURED_CXXFLAGS}") set_source_files_properties(${LIBOMP_ASMFILES} ${LIBOMP_GNUASMFILES} PROPERTIES COMPILE_FLAGS "${LIBOMP_CONFIGURED_ASMFLAGS}") -# Let the compiler handle the GNU assembly files -set_source_files_properties(${LIBOMP_GNUASMFILES} PROPERTIES LANGUAGE C) # Remove any cmake-automatic linking of the standard C++ library. # We neither need (nor want) the standard C++ library dependency even though we compile c++ files. |