[libc-commits] [libc] [libc] Fix tests' linking flags accidentally modified by #147931. (PR #149453)
via libc-commits
libc-commits at lists.llvm.org
Fri Jul 18 06:56:01 PDT 2025
https://github.com/lntue updated https://github.com/llvm/llvm-project/pull/149453
>From dab60309ddf456795b591aa0b83fbb178f1e6fdf Mon Sep 17 00:00:00 2001
From: Tue Ly <lntue.h at gmail.com>
Date: Fri, 18 Jul 2025 05:19:42 +0000
Subject: [PATCH 1/2] [libc] Fix tests' linking flags accidentally modified by
#147931.
---
libc/cmake/modules/LLVMLibCTestRules.cmake | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libc/cmake/modules/LLVMLibCTestRules.cmake b/libc/cmake/modules/LLVMLibCTestRules.cmake
index e210992c5111a..e128b4500fc2a 100644
--- a/libc/cmake/modules/LLVMLibCTestRules.cmake
+++ b/libc/cmake/modules/LLVMLibCTestRules.cmake
@@ -571,6 +571,8 @@ function(add_integration_test test_name)
target_compile_options(${fq_build_target_name} PRIVATE
${compile_options} ${INTEGRATION_TEST_COMPILE_OPTIONS})
+ set(link_libraries "")
+
if(LIBC_TARGET_ARCHITECTURE_IS_AMDGPU)
target_link_options(${fq_build_target_name} PRIVATE
${LIBC_COMPILE_OPTIONS_DEFAULT} ${INTEGRATION_TEST_COMPILE_OPTIONS}
@@ -599,17 +601,19 @@ function(add_integration_test test_name)
set(link_options
-nolibc
-nostartfiles
- -static
+ -nostdlib
${LIBC_LINK_OPTIONS_DEFAULT}
${LIBC_TEST_LINK_OPTIONS_DEFAULT}
)
target_link_options(${fq_build_target_name} PRIVATE ${link_options})
+ list(APPEND link_libraries ${LIBGCC_S_LOCATION})
endif()
target_link_libraries(
${fq_build_target_name}
${fq_target_name}.__libc__
libc.startup.${LIBC_TARGET_OS}.crt1
libc.test.IntegrationTest.test
+ ${link_libraries}
)
add_dependencies(${fq_build_target_name}
libc.test.IntegrationTest.test
@@ -807,7 +811,7 @@ function(add_libc_hermetic test_name)
set(link_options
-nolibc
-nostartfiles
- -static
+ -nostdlib
${LIBC_LINK_OPTIONS_DEFAULT}
${LIBC_TEST_LINK_OPTIONS_DEFAULT}
)
>From b22f00c15f7164bff67d3cbdf6ab5fb838e163b4 Mon Sep 17 00:00:00 2001
From: Tue Ly <lntue.h at gmail.com>
Date: Fri, 18 Jul 2025 13:55:02 +0000
Subject: [PATCH 2/2] Move libgcc_s to be linked after __libc__, and make
linking order of integration tests the same as hermetic test.
---
libc/cmake/modules/LLVMLibCTestRules.cmake | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/libc/cmake/modules/LLVMLibCTestRules.cmake b/libc/cmake/modules/LLVMLibCTestRules.cmake
index e128b4500fc2a..3fb62788c1168 100644
--- a/libc/cmake/modules/LLVMLibCTestRules.cmake
+++ b/libc/cmake/modules/LLVMLibCTestRules.cmake
@@ -571,7 +571,7 @@ function(add_integration_test test_name)
target_compile_options(${fq_build_target_name} PRIVATE
${compile_options} ${INTEGRATION_TEST_COMPILE_OPTIONS})
- set(link_libraries "")
+ set(compiler_runtime "")
if(LIBC_TARGET_ARCHITECTURE_IS_AMDGPU)
target_link_options(${fq_build_target_name} PRIVATE
@@ -606,14 +606,14 @@ function(add_integration_test test_name)
${LIBC_TEST_LINK_OPTIONS_DEFAULT}
)
target_link_options(${fq_build_target_name} PRIVATE ${link_options})
- list(APPEND link_libraries ${LIBGCC_S_LOCATION})
+ list(APPEND compiler_runtime ${LIBGCC_S_LOCATION})
endif()
target_link_libraries(
${fq_build_target_name}
- ${fq_target_name}.__libc__
libc.startup.${LIBC_TARGET_OS}.crt1
libc.test.IntegrationTest.test
- ${link_libraries}
+ ${fq_target_name}.__libc__
+ ${compiler_runtime}
)
add_dependencies(${fq_build_target_name}
libc.test.IntegrationTest.test
@@ -774,6 +774,7 @@ function(add_libc_hermetic test_name)
${HERMETIC_TEST_COMPILE_OPTIONS})
set(link_libraries "")
+ set(compiler_runtime "")
foreach(lib IN LISTS HERMETIC_TEST_LINK_LIBRARIES)
if(TARGET ${lib}.hermetic)
list(APPEND link_libraries ${lib}.hermetic)
@@ -816,7 +817,7 @@ function(add_libc_hermetic test_name)
${LIBC_TEST_LINK_OPTIONS_DEFAULT}
)
target_link_options(${fq_build_target_name} PRIVATE ${link_options})
- list(APPEND link_libraries ${LIBGCC_S_LOCATION})
+ list(APPEND compiler_runtime ${LIBGCC_S_LOCATION})
endif()
target_link_libraries(
${fq_build_target_name}
@@ -824,7 +825,9 @@ function(add_libc_hermetic test_name)
libc.startup.${LIBC_TARGET_OS}.crt1
${link_libraries}
LibcHermeticTestSupport.hermetic
- ${fq_target_name}.__libc__)
+ ${fq_target_name}.__libc__
+ ${compiler_runtime}
+ )
add_dependencies(${fq_build_target_name}
LibcTest.hermetic
libc.test.UnitTest.ErrnoSetterMatcher
More information about the libc-commits
mailing list