[libcxx] [ci] Check that Windows static libraries don't contain dllexports
authorMartin Storsjö <martin@martin.st>
Mon, 7 Mar 2022 21:35:45 +0000 (23:35 +0200)
committerMartin Storsjö <martin@martin.st>
Mon, 21 Mar 2022 09:22:34 +0000 (11:22 +0200)
Differential Revision: https://reviews.llvm.org/D121164

libcxx/test/libcxx/vendor/clang-cl/static-lib-exports.sh.cpp [new file with mode: 0644]
libcxx/test/libcxx/vendor/mingw/static-lib-exports.sh.cpp [new file with mode: 0644]

diff --git a/libcxx/test/libcxx/vendor/clang-cl/static-lib-exports.sh.cpp b/libcxx/test/libcxx/vendor/clang-cl/static-lib-exports.sh.cpp
new file mode 100644 (file)
index 0000000..35f2221
--- /dev/null
@@ -0,0 +1,19 @@
+//===----------------------------------------------------------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+
+// REQUIRES: msvc
+
+// This file checks that the built static library doesn't contain dllexport
+// directives in clang-cl builds.
+
+// RUN: llvm-readobj --coff-directives "%{lib}/libc++.lib" | not grep -i "export:" > /dev/null
+
+// It's a known issue, that when building a shared library at the same time
+// as the static library, the generated static library does contain dllexport
+// directives.
+// XFAIL: windows-dll
diff --git a/libcxx/test/libcxx/vendor/mingw/static-lib-exports.sh.cpp b/libcxx/test/libcxx/vendor/mingw/static-lib-exports.sh.cpp
new file mode 100644 (file)
index 0000000..7af240e
--- /dev/null
@@ -0,0 +1,19 @@
+//===----------------------------------------------------------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+
+// REQUIRES: target={{.+}}-windows-gnu
+
+// This file checks that the built static library doesn't contain dllexport
+// directives in MinGW builds.
+
+// RUN: llvm-readobj --coff-directives "%{lib}/libc++.a" | not grep -i "export:" > /dev/null
+
+// It's a known issue, that when building a shared library at the same time
+// as the static library, the generated static library does contain dllexport
+// directives.
+// XFAIL: windows-dll