diff options
author | Vadim Paretsky <b-vadipa@microsoft.com> | 2023-03-27 17:20:54 -0700 |
---|---|---|
committer | Vadim Paretsky <b-vadipa@microsoft.com> | 2023-03-27 17:20:54 -0700 |
commit | 30ce6fbfaae4a6c03fe18d06163e696054a692cb (patch) | |
tree | bc20cc5dc7b13bbb6ccde5bd971a5735b409ab18 | |
parent | 1b56f273b27114322187ea0509762671cdec9e84 (diff) | |
download | llvm-30ce6fbfaae4a6c03fe18d06163e696054a692cb.zip llvm-30ce6fbfaae4a6c03fe18d06163e696054a692cb.tar.gz llvm-30ce6fbfaae4a6c03fe18d06163e696054a692cb.tar.bz2 |
[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
-rw-r--r-- | openmp/runtime/src/CMakeLists.txt | 11 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_dummy.txt | 13 |
2 files changed, 18 insertions, 6 deletions
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt index 931975d..502ec5a 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 0000000..0dce7617 --- /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 // |