Skip to content

Commit

Permalink
[libc] Inherit integration test dependencies from the startup target
Browse files Browse the repository at this point in the history
All integration tests rely on the startup code to be run. Currently we
manually include a few of these dependencies that are relevant for the
Linux target. This patch changes this to make the integration test's
dependencies include all the dependencies of the startup code. This
simplifies the code and makes it easier to support different targets.
The changes here cause the integration test to be dependent on more
targets than previously necessary, but it should be fine.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D146184
  • Loading branch information
jhuber6 committed Mar 16, 2023
1 parent bece599 commit f625230
Showing 1 changed file with 3 additions and 9 deletions.
12 changes: 3 additions & 9 deletions libc/cmake/modules/LLVMLibCTestRules.cmake
Expand Up @@ -439,15 +439,9 @@ function(add_integration_test test_name)

get_fq_deps_list(fq_deps_list ${INTEGRATION_TEST_DEPENDS})
list(APPEND fq_deps_list
# All integration tests setup TLS area and the main thread's self object.
# So, we need to link in the threads implementation. Likewise, the startup
# code also has to run init_array callbacks which potentially register
# their own atexit callbacks. So, link in exit and atexit also with all
# integration tests.
libc.src.__support.threads.thread
libc.src.stdlib.atexit
libc.src.stdlib.exit
libc.src.unistd.environ
# All integration tests need to inherit the same dependencies as the
# startup code.
${INTEGRATION_TEST_STARTUP}
# We always add the memory functions objects. This is because the
# compiler's codegen can emit calls to the C memory functions.
libc.src.string.bcmp
Expand Down

0 comments on commit f625230

Please sign in to comment.