Skip to content

Commit 1e58c9d

Browse files
authored
[libc] Fix math tests for macos arm64. (#100060)
Some problem with current build on macos: - no libatomic. - death tests do not work yet.
1 parent a51d263 commit 1e58c9d

File tree

7 files changed

+16
-7
lines changed

7 files changed

+16
-7
lines changed

libc/src/stdlib/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,12 @@ if(NOT LIBC_TARGET_OS_IS_GPU)
331331
include(${LIBC_SOURCE_DIR}/../compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake)
332332

333333
# scudo distinguishes riscv32 and riscv64, so we need to translate the architecture
334-
set(LIBC_TARGET_ARCHITECTURE_FOR_SCUDO ${LIBC_TARGET_ARCHITECTURE})
334+
# set(LIBC_TARGET_ARCHITECTURE_FOR_SCUDO ${LIBC_TARGET_ARCHITECTURE})
335+
if (LIBC_TARGET_OS_IS_DARWIN AND (LIBC_TARGET_ARCHITECTURE STREQUAL "arm"))
336+
set(LIBC_TARGET_ARCHITECTURE_FOR_SCUDO arm64)
337+
else()
338+
set(LIBC_TARGET_ARCHITECTURE_FOR_SCUDO ${LIBC_TARGET_ARCHITECTURE})
339+
endif()
335340
if(LIBC_TARGET_ARCHITECTURE_IS_RISCV64)
336341
set(LIBC_TARGET_ARCHITECTURE_FOR_SCUDO riscv64)
337342
elseif(LIBC_TARGET_ARCHITECTURE_IS_RISCV32)

libc/test/src/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ function(add_fp_unittest name)
2424
message(FATAL_ERROR "Hermetic math test cannot require MPFR.")
2525
endif()
2626
set(test_type UNIT_TEST_ONLY)
27-
list(APPEND MATH_UNITTEST_LINK_LIBRARIES libcMPFRWrapper -lmpfr -lgmp -latomic)
27+
list(APPEND MATH_UNITTEST_LINK_LIBRARIES libcMPFRWrapper -lmpfr -lgmp)
28+
if(NOT(LIBC_TARGET_OS_IS_DARWIN))
29+
# macOS does not have libatomic.
30+
list(APPEND MATH_UNITTEST_LINK_LIBRARIES -latomic)
31+
endif()
2832
endif()
2933
list(APPEND MATH_UNITTEST_LINK_LIBRARIES LibcFPTestHelpers)
3034

libc/test/src/math/smoke/nan_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ TEST_F(LlvmLibcNanTest, RandomString) {
4343
run_test("123 ", 0x7ff8000000000000);
4444
}
4545

46-
#ifndef LIBC_HAVE_ADDRESS_SANITIZER
46+
#if defined(LIBC_HAVE_ADDRESS_SANITIZER) && defined(LIBC_TARGET_OS_IS_LINUX)
4747
TEST_F(LlvmLibcNanTest, InvalidInput) {
4848
EXPECT_DEATH([] { LIBC_NAMESPACE::nan(nullptr); }, WITH_SIGNAL(SIGSEGV));
4949
}

libc/test/src/math/smoke/nanf128_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ TEST_F(LlvmLibcNanf128Test, RandomString) {
5353
QUIET_NAN);
5454
}
5555

56-
#ifndef LIBC_HAVE_ADDRESS_SANITIZER
56+
#if defined(LIBC_HAVE_ADDRESS_SANITIZER) && defined(LIBC_TARGET_OS_IS_LINUX)
5757
#include <signal.h>
5858
TEST_F(LlvmLibcNanf128Test, InvalidInput) {
5959
EXPECT_DEATH([] { LIBC_NAMESPACE::nanf128(nullptr); }, WITH_SIGNAL(SIGSEGV));

libc/test/src/math/smoke/nanf16_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ TEST_F(LlvmLibcNanf16Test, RandomString) {
4444
run_test("123 ", 0x7e00);
4545
}
4646

47-
#ifndef LIBC_HAVE_ADDRESS_SANITIZER
47+
#if defined(LIBC_HAVE_ADDRESS_SANITIZER) && defined(LIBC_TARGET_OS_IS_LINUX)
4848
TEST_F(LlvmLibcNanf16Test, InvalidInput) {
4949
EXPECT_DEATH([] { LIBC_NAMESPACE::nanf16(nullptr); }, WITH_SIGNAL(SIGSEGV));
5050
}

libc/test/src/math/smoke/nanf_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ TEST_F(LlvmLibcNanfTest, RandomString) {
4242
run_test("123 ", 0x7fc00000);
4343
}
4444

45-
#ifndef LIBC_HAVE_ADDRESS_SANITIZER
45+
#if defined(LIBC_HAVE_ADDRESS_SANITIZER) && defined(LIBC_TARGET_OS_IS_LINUX)
4646
TEST_F(LlvmLibcNanfTest, InvalidInput) {
4747
EXPECT_DEATH([] { LIBC_NAMESPACE::nanf(nullptr); }, WITH_SIGNAL(SIGSEGV));
4848
}

libc/test/src/math/smoke/nanl_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ TEST_F(LlvmLibcNanlTest, RandomString) {
7070
run_test("123 ", expected);
7171
}
7272

73-
#ifndef LIBC_HAVE_ADDRESS_SANITIZER
73+
#if defined(LIBC_HAVE_ADDRESS_SANITIZER) && defined(LIBC_TARGET_OS_IS_LINUX)
7474
TEST_F(LlvmLibcNanlTest, InvalidInput) {
7575
EXPECT_DEATH([] { LIBC_NAMESPACE::nanl(nullptr); }, WITH_SIGNAL(SIGSEGV));
7676
}

0 commit comments

Comments
 (0)