[libc] Set rtlib to compiler-rt in integration tests.

The clang driver to picks up compiler runtime files using full paths.
Without this, at least for aarch64, the driver tries to pick up the
compiler runtime files from the working directory.

Reviewed By: michaelrj

Differential Revision: https://reviews.llvm.org/D122617
This commit is contained in:
Siva Chandra Reddy 2022-03-28 21:11:08 +00:00
parent 75c8585ef0
commit 2c20c9003b
1 changed files with 6 additions and 1 deletions

View File

@ -389,7 +389,12 @@ function(add_integration_test test_name)
${LIBC_BUILD_DIR}
${LIBC_BUILD_DIR}/include
)
target_link_options(${fq_target_name} PRIVATE --sysroot=${sysroot} -static -stdlib=libc++)
# We set a number of link options to prevent picking up system libc binaries.
# Also, we restrict the integration tests to fully static executables. The
# rtlib is set to compiler-rt to make the compiler drivers pick up the compiler
# runtime binaries using full paths. Otherwise, files like crtbegin.o are passed
# as is (and not as paths like /usr/lib/.../crtbegin.o).
target_link_options(${fq_target_name} PRIVATE --sysroot=${sysroot} -static -stdlib=libc++ --rtlib=compiler-rt)
add_dependencies(${fq_target_name}
${fq_target_name}.__copy_loader__
${fq_libc_target_name}