Skip to content

Conversation

@ndrewh
Copy link
Contributor

@ndrewh ndrewh commented Nov 6, 2025

When doing a LLVM_ENABLE_RUNTIMES-based build of clang+compiler_rt, the check-builtins target is missing and builtins tests are not run (#112105, #144090).

This provides one possible path forward for enabling these tests.

The approach taken here is to test the builtins with the compiler-rt runtime build (i.e. only if you pass LLVM_ENABLE_RUNTIMES='compiler-rt'). The builtins tests currently rely on shared test infrastructure in compiler-rt/, so this is probably the easiest solution without relocating the builtins and their tests outside of compiler-rt/.

The main challenge is that the built-ins test configuration expects to be able to inspect the builtin target and see the sources used to build it:

    get_target_property(BUILTIN_LIB_SOURCES "${BUILTIN_LIB_TARGET_NAME}" SOURCES)

Since the builtins build and runtimes build are separate under LLVM_ENABLE_RUNTIMES, this target inspection is not possible. To get around this, we write a temporary file alongside each builtins library containing the list of sources (e.g. "${CMAKE_BINARY_DIR}/clang_rt.builtins-${arch}.sources.txt"). Then, we introduce an undocumented compiler-rt option COMPILER_RT_FORCE_TEST_BUILTINS_DIR (which is only intended to be used by the LLVM_ENABLE_RUNTIMES build, and could be removed after builtins re relocated) that passes the path to the directory containing this file, and configures builtins tests (even though the runtimes build has COMPILER_RT_BUILD_BUILTINS=OFF)

@ndrewh
Copy link
Contributor Author

ndrewh commented Nov 6, 2025

2025-11-07T03:35:32.5875033Z ********************
2025-11-07T03:35:32.5875244Z Failed Tests (4):
2025-11-07T03:35:32.5875527Z   Builtins-x86_64-linux :: extendhfdf2_test.c
2025-11-07T03:35:32.5875859Z   Builtins-x86_64-linux :: extendhfsf2_test.c
2025-11-07T03:35:32.5876184Z   Builtins-x86_64-linux :: extendhfxf2_test.c
2025-11-07T03:35:32.5876509Z   Builtins-x86_64-linux :: truncdfhf2_test.c

These two failed also on arm64 (though the job claims it passed....)

2025-11-07T03:41:11.9790737Z   Builtins-aarch64-linux :: extendhfdf2_test.c
2025-11-07T03:41:11.9791208Z   Builtins-aarch64-linux :: extendhfsf2_test.c

Although this could be that I broke the test config somehow, it seems also possible that these tests just weren't being run in CI, and so someone broke them and it was undetected?

(As a quick sanity check, I looked at the logs for another PR and it does not seem to have run the builtins tests at all.)

@ndrewh ndrewh requested a review from delcypher November 7, 2025 09:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants