summaryrefslogtreecommitdiff
path: root/openmp/runtime
diff options
context:
space:
mode:
authorVadim Paretsky <b-vadipa@microsoft.com>2023-03-27 17:20:54 -0700
committerVadim Paretsky <b-vadipa@microsoft.com>2023-03-27 17:20:54 -0700
commit30ce6fbfaae4a6c03fe18d06163e696054a692cb (patch)
treebc20cc5dc7b13bbb6ccde5bd971a5735b409ab18 /openmp/runtime
parent1b56f273b27114322187ea0509762671cdec9e84 (diff)
downloadllvm-30ce6fbfaae4a6c03fe18d06163e696054a692cb.tar.gz
[OpenMP] Fix an OpenMP Windows build problem
When building OpenMP as part of LLVM, CMAKE was generating incorrect location references for OpenMP build's first step's artifacts being used in regenerating its Windows import library in the second step. The fix is to feed a dummy non-buildable, rather than buildable, source to CMAKE to satisfy its source requirements removing the need to reference the first step's artifacts in the second step altogether. Differential Revision:https://reviews.llvm.org/D146894
Diffstat (limited to 'openmp/runtime')
-rw-r--r--openmp/runtime/src/CMakeLists.txt11
-rw-r--r--openmp/runtime/src/kmp_dummy.txt13
2 files changed, 18 insertions, 6 deletions
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
index 931975d9445b..502ec5a6b80b 100644
--- a/openmp/runtime/src/CMakeLists.txt
+++ b/openmp/runtime/src/CMakeLists.txt
@@ -295,14 +295,13 @@ if(WIN32)
-o ${LIBOMPIMP_GENERATED_DEF_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/dllexports
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dllexports ${LIBOMP_TOOLS_DIR}/generate-def.pl
)
- # while this is merely generating an import library off the one generated with the runtime dll,
- # kmp_global.cpp will satisfy the librarian's apparent ask to see the actual exported DATA items
- set_source_files_properties(${LIBOMP_GENERATED_IMP_LIB_FILENAME} PROPERTIES GENERATED TRUE EXTERNAL_OBJECT TRUE)
- add_library(${LIBOMP_IMP_LIB_TARGET} STATIC ${LIBOMP_GENERATED_IMP_LIB_FILENAME} kmp_global.cpp)
+ # while this merely generates an import library off a def file, CMAKE still requires it to have a "source" so feed it a dummy one,
+ # making it a .txt which CMAKE will filter out from the librarian (a .cpp will make lib.exe punt trying to resolve the .def symbols)
+ add_library(${LIBOMP_IMP_LIB_TARGET} STATIC kmp_dummy.txt)
set_target_properties(${LIBOMP_IMP_LIB_TARGET} PROPERTIES
- PREFIX "" SUFFIX "" OUTPUT_NAME "${LIBOMP_IMP_LIB_FILE}" LINKER_LANGUAGE C
+ PREFIX "" SUFFIX "" OUTPUT_NAME "${LIBOMP_IMP_LIB_FILE}" LINKER_LANGUAGE ${LIBOMP_LINKER_LANGUAGE}
STATIC_LIBRARY_OPTIONS "${CMAKE_LINK_DEF_FILE_FLAG}${CMAKE_CURRENT_BINARY_DIR}/${LIBOMPIMP_GENERATED_DEF_FILE}")
- add_dependencies(${LIBOMP_IMP_LIB_TARGET} omp libompimp-needed-def-file)
+ add_dependencies(${LIBOMP_IMP_LIB_TARGET} libompimp-needed-def-file)
endif()
endif()
diff --git a/openmp/runtime/src/kmp_dummy.txt b/openmp/runtime/src/kmp_dummy.txt
new file mode 100644
index 000000000000..0dce7617cf90
--- /dev/null
+++ b/openmp/runtime/src/kmp_dummy.txt
@@ -0,0 +1,13 @@
+/*
+ * kmp_dummy.txt -- dummy "source" file used in regenerating the Windows import library
+ */
+
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// end of file //