[Openmp-commits] [openmp] [OpenMP] Add libomp unit test infrastructure (PR #168063)
Michael Kruse via Openmp-commits
openmp-commits at lists.llvm.org
Tue Dec 2 14:29:51 PST 2025
================
@@ -200,6 +211,31 @@ if(${LIBOMP_USE_HWLOC})
)
endif()
+# Build a testing version of libomp that exports all symbols for unit tests.
+# This library uses the same compiled objects as libomp, but with all symbols
+# exported to allow testing internal functions.
+if(NOT WIN32 AND NOT STUBS_LIBRARY)
+ set(LIBOMP_TEST_LDFLAGS ${LIBOMP_CONFIGURED_LDFLAGS})
+ # Replace the libomp exports with the test exports exporting all symbols.
+ if(LIBOMP_HAVE_VERSION_SCRIPT_FLAG)
+ string(REPLACE "${LIBOMP_SRC_DIR}/exports_so.txt"
+ "${LIBOMP_SRC_DIR}/exports_test_so.txt"
+ LIBOMP_TEST_LDFLAGS "${LIBOMP_TEST_LDFLAGS}")
----------------
Meinersbur wrote:
Instead of string-replacing which feels very hacky, could we make a parameterized version of libomp_get_libflags? E.g.
```cmake
libomp_get_libflags(LIBOMP_TEST_LDFLAGS FOR_UNITTESTS)
```
Where `FOR_UNITTESTS` is a `cmake_parse_arguments` option in `libomp_get_libflags`.
I think we don't need `exports_test_so.txt` at all; just do not use the `--version-script` switch and all symbols are visible to the unittests (assuming defaut `-fvisibility=default`).
https://github.com/llvm/llvm-project/pull/168063
More information about the Openmp-commits
mailing list