[libc-commits] [libc] 316f9fd - [libc] Link the SCUDO integration tests to a special entrypoint collection.
Siva Chandra Reddy via libc-commits
libc-commits at lists.llvm.org
Wed Mar 23 16:27:31 PDT 2022
Author: Siva Chandra Reddy
Date: 2022-03-23T23:27:23Z
New Revision: 316f9fd638015b7e7b7200c28beb7d428017ba79
URL: https://github.com/llvm/llvm-project/commit/316f9fd638015b7e7b7200c28beb7d428017ba79
DIFF: https://github.com/llvm/llvm-project/commit/316f9fd638015b7e7b7200c28beb7d428017ba79.diff
LOG: [libc] Link the SCUDO integration tests to a special entrypoint collection.
We were previously linking to libllvmlibc.a. But, with libllvmlibc.a now
including functions which depend on the loader, we will have to use the
LLVM libc loader as well. To avoid this, we will link to a special
library which is just a collection of SCUDO allocator entrypoints.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D122360
Added:
Modified:
libc/test/integration/scudo/CMakeLists.txt
Removed:
################################################################################
diff --git a/libc/test/integration/scudo/CMakeLists.txt b/libc/test/integration/scudo/CMakeLists.txt
index 045dc9a67bbd3..98e039aaf5e01 100644
--- a/libc/test/integration/scudo/CMakeLists.txt
+++ b/libc/test/integration/scudo/CMakeLists.txt
@@ -2,6 +2,22 @@ if(NOT LLVM_LIBC_INCLUDE_SCUDO)
return()
endif()
+# We use a special library consisting of only the SCUDO allocator
+# functions to link to the integration tests below. We could instead
+# link to libllvmlibc.a directly, but since libllvmlibc.a contains
+# functions which depend on the LLVM libc loader, the integration
+# test will have to link to the LLVM libc loader. LLVM libc's loader
+# is not complete enough to allow this. It is also desireable to
+# keep the dependencies as minimal as possible.
+add_entrypoint_library(
+ libc_for_scudo_integration_test
+ DEPENDS
+ libc.src.stdlib.malloc
+ libc.src.stdlib.calloc
+ libc.src.stdlib.realloc
+ libc.src.stdlib.free
+)
+
add_executable(
libc-scudo-integration-test
integration_test.cpp
@@ -10,14 +26,12 @@ add_executable(
target_link_options(
libc-scudo-integration-test
PRIVATE
- # TODO: Uncomment "-nolibc" once llvm-libc is complete enough.
- # "-nolibc"
-pthreads
)
target_link_libraries(libc-scudo-integration-test
PRIVATE
- llvmlibc
+ libc_for_scudo_integration_test
)
add_executable(
@@ -28,14 +42,12 @@ add_executable(
target_link_options(
libc-gwp-asan-uaf-should-crash
PRIVATE
- # TODO: Uncomment "-nolibc" once llvm-libc is complete enough.
- # "-nolibc"
-pthreads
)
target_link_libraries(libc-gwp-asan-uaf-should-crash
PRIVATE
- llvmlibc
+ libc_for_scudo_integration_test
)
add_custom_command(TARGET libc-scudo-integration-test
More information about the libc-commits
mailing list