[Openmp-commits] [PATCH] D146894: [OpenMP] Fix an OpenMP Windows build problem

Vadim Paretsky via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Mon Mar 27 13:30:48 PDT 2023


vadikp-intel updated this revision to Diff 508781.
vadikp-intel edited the summary of this revision.
vadikp-intel set the repository for this revision to rG LLVM Github Monorepo.
vadikp-intel added a comment.

Updated with a better fix.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146894/new/

https://reviews.llvm.org/D146894

Files:
  openmp/runtime/src/CMakeLists.txt
  openmp/runtime/src/kmp_dummy.txt


Index: openmp/runtime/src/kmp_dummy.txt
===================================================================
--- /dev/null
+++ 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 //
Index: openmp/runtime/src/CMakeLists.txt
===================================================================
--- openmp/runtime/src/CMakeLists.txt
+++ openmp/runtime/src/CMakeLists.txt
@@ -295,12 +295,11 @@
           -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)
   endif()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D146894.508781.patch
Type: text/x-patch
Size: 2290 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20230327/06167e5f/attachment.bin>


More information about the Openmp-commits mailing list