mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 11:47:46 +00:00
Meta+test262-runner: Check for signature of __assert_fail in CMake
Rather than trying to assume the only two C libraries on Linux are musl and glibc, this solution fixes musl builds by explicitly checking for the one C library function we are overwriting. That being said, we should find another solution to retrieving this error information from crashing tests. Possibly just overriding the SIGABRT handler would work. The full solution might require checking stderr as well as stdout in the test driver though.
This commit is contained in:
parent
4ed5520e3e
commit
c0542ed40b
2 changed files with 20 additions and 1 deletions
|
@ -497,6 +497,22 @@ if (BUILD_LAGOM)
|
|||
add_executable(test262-runner ../../Tests/LibJS/test262-runner.cpp)
|
||||
target_link_libraries(test262-runner LibJS LibCore)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
include(CheckCSourceCompiles)
|
||||
# Check for musl's declaration of __assert_fail
|
||||
check_c_source_compiles(
|
||||
"
|
||||
#include <assert.h>
|
||||
__attribute__((__noreturn__)) void __assert_fail(char const* assertion, char const* file, int line, char const* function) {}
|
||||
int main() {}
|
||||
"
|
||||
ASSERT_FAIL_HAS_INT
|
||||
)
|
||||
endif()
|
||||
if (ASSERT_FAIL_HAS_INT OR EMSCRIPTEN)
|
||||
target_compile_definitions(test262-runner PRIVATE ASSERT_FAIL_HAS_INT)
|
||||
endif()
|
||||
|
||||
add_executable(wasm ../../Userland/Utilities/wasm.cpp)
|
||||
target_link_libraries(wasm LibCore LibWasm LibLine LibMain)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue