diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16.json index be6fb47c2508..b3e2f72d3f2c 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti.json index 2209e5e9e182..115ef2ffe20a 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti_unaligned.json index 25ee4957bb0f..02542c0e501b 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_unaligned.json index ac3f238af0cf..66ca48dacd45 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_hard_vfpv3_d16_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp.json index cc7542b58a27..e23549a83dfb 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti.json index 90cec0354d13..c57d10554c03 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti_unaligned.json index 9b4722e9e8dc..1adbbac18434 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_unaligned.json index de7326e275a4..2df173dbf9e3 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_nofp_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16.json index e8a610e94989..908e4e419fec 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti.json index 5ddaf49c0b76..3d1f880c729b 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti_unaligned.json index 197a5e4aa945..7cb9de244ceb 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_unaligned.json index 663673e11c95..81f9438a6a1a 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7a_soft_vfpv3_d16_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16.json index efd8578261c3..cef283151ee0 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti.json index 8f91df1be295..b2f2d9e6552a 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti_unaligned.json index 1dd108c87212..59e33466cea3 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_unaligned.json index 742e75aead7d..8dde9cbadf34 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3_d16_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd.json index 82483831196f..05721abc6539 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti.json index 496ce3c80358..b11a668335b9 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti_unaligned.json index 633687b9b75a..2b3f6d404453 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_unaligned.json index 02c5da952a2f..c8b1f6b34133 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_hard_vfpv3xd_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp.json index d1cab151bf67..ea0d7fcc05cb 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti.json index 9447cc67d7af..c732cc6a6ad9 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti_unaligned.json index d244b5d19e04..7d342d9d8ca3 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_unaligned.json index 75c8e5f7a95e..a9c02d106bcb 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_nofp_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd.json index 1dae785b9f60..825d0c031971 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti.json index 5fae3b6e4ea6..bc273f1edacd 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti_unaligned.json index d987dd4f59dd..877e0bc6f549 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_unaligned.json b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_unaligned.json index 203cd123d2fd..e778d02b273f 100644 --- a/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_unaligned.json +++ b/arm-software/embedded/arm-multilib/json/variants/armv7r_soft_vfpv3xd_unaligned.json @@ -33,7 +33,7 @@ }, "llvmlibc": { "ENABLE_CXX_LIBS": "ON", - "ENABLE_LIBC_TESTS": "OFF", + "ENABLE_LIBC_TESTS": "ON", "ENABLE_COMPILER_RT_TESTS": "OFF", "ENABLE_LIBCXX_TESTS": "OFF" } diff --git a/arm-software/embedded/arm-runtimes/CMakeLists.txt b/arm-software/embedded/arm-runtimes/CMakeLists.txt index 6cd65589f0fd..6fb8d9750f2d 100644 --- a/arm-software/embedded/arm-runtimes/CMakeLists.txt +++ b/arm-software/embedded/arm-runtimes/CMakeLists.txt @@ -635,7 +635,12 @@ endif() ############################################################################### if(C_LIBRARY STREQUAL llvmlibc) - set(test_cmd "qemu-system-arm -M ${QEMU_MACHINE} -semihosting -nographic -device loader$file=@BINARY@") + set(test_cmd + "qemu-system-arm -M ${QEMU_MACHINE} -cpu ${QEMU_CPU} ${QEMU_PARAMS} \ + -chardev stdio$mux=on$id=stdio0 \ + -semihosting-config enable=on$chardev=stdio0$arg=program-name \ + -monitor none -serial none -nographic -device loader$file=@BINARY@$cpu-num=0") + set(lib_compile_flags "${lib_compile_flags} -Wno-error=atomic-alignment") set(common_llvmlibc_cmake_args diff --git a/arm-software/embedded/llvmlibc-support/crt0/exceptions_7a.h b/arm-software/embedded/llvmlibc-support/crt0/exceptions_7a.h index 7d72b33253dc..1f7a42464c0d 100644 --- a/arm-software/embedded/llvmlibc-support/crt0/exceptions_7a.h +++ b/arm-software/embedded/llvmlibc-support/crt0/exceptions_7a.h @@ -95,7 +95,9 @@ EXFN_ATTR void handle_fiq() { // bytes long, and contains code. The whole table must be 32-byte aligned. // The table may also be relocated, so we make it position-independent by // having a table of handler addresses and loading the address to pc. -__attribute__((naked, section(".vectors"), aligned(32))) void vector_table() { +[[gnu::section(".vectors"), gnu::aligned(32), gnu::used, gnu::naked, + gnu::target("arm")]] +void vector_table() { asm("LDR pc, [pc, #24]"); asm("LDR pc, [pc, #24]"); asm("LDR pc, [pc, #24]"); @@ -104,14 +106,14 @@ __attribute__((naked, section(".vectors"), aligned(32))) void vector_table() { asm("LDR pc, [pc, #24]"); asm("LDR pc, [pc, #24]"); asm("LDR pc, [pc, #24]"); - asm(".word %0" : : "X"(handle_reset)); - asm(".word %0" : : "X"(handle_undefined)); - asm(".word %0" : : "X"(handle_svc_hyp_smc)); - asm(".word %0" : : "X"(handle_prefetch_abort)); - asm(".word %0" : : "X"(handle_data_abort)); - asm(".word %0" : : "X"(handle_hyp_trap)); - asm(".word %0" : : "X"(handle_irq)); - asm(".word %0" : : "X"(handle_fiq)); + asm(".word %c0" : : "X"(handle_reset)); + asm(".word %c0" : : "X"(handle_undefined)); + asm(".word %c0" : : "X"(handle_svc_hyp_smc)); + asm(".word %c0" : : "X"(handle_prefetch_abort)); + asm(".word %c0" : : "X"(handle_data_abort)); + asm(".word %c0" : : "X"(handle_hyp_trap)); + asm(".word %c0" : : "X"(handle_irq)); + asm(".word %c0" : : "X"(handle_fiq)); } } // namespace exceptions diff --git a/arm-software/embedded/llvmlibc-support/crt0/exceptions_a.h b/arm-software/embedded/llvmlibc-support/crt0/exceptions_a.h index 68d4ae46e65e..8614cf0b2ee3 100644 --- a/arm-software/embedded/llvmlibc-support/crt0/exceptions_a.h +++ b/arm-software/embedded/llvmlibc-support/crt0/exceptions_a.h @@ -35,8 +35,12 @@ void setup() { // The vector table is always at address 0. The inline assembly is needed // here to hide the memcpy to a null pointer from the compiler. void *final_vector_table = NULL; - asm("" : "+r"(final_vector_table)); - memcpy(final_vector_table, (void *)&vector_table, 64); + // Don't use memcpy as llvmlibc memcpy will fault a copy to address 0. + // Size is more important than speed here so don't unroll the loop. + _Pragma("clang loop unroll(disable) vectorize(disable)") for ( + int i = 0; i < 64 / sizeof(unsigned int); i++) { + ((unsigned int *)final_vector_table)[i] = ((unsigned int *)vector_table)[i]; + } #endif }