From f3fe827ea8ec24039a2ad8f3aba2da0a167beb97 Mon Sep 17 00:00:00 2001 From: Michael Jones Date: Tue, 19 Sep 2023 15:09:55 -0700 Subject: [PATCH] [libc] Fix printf config not working The list of printf copts available in config.json wasn't working because the printf_core subdirectory was included before the printf_copts variable was defined, making it effectively nothing for the printf internals. Additionally, the tests weren't respecting the flags so they would cause the tests to fail. This patch reorders the cmake in src and adds flag handling in test. --- libc/src/stdio/CMakeLists.txt | 6 +++--- libc/test/src/stdio/CMakeLists.txt | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/libc/src/stdio/CMakeLists.txt b/libc/src/stdio/CMakeLists.txt index a13321d1372295..f3a75fb965c6e1 100644 --- a/libc/src/stdio/CMakeLists.txt +++ b/libc/src/stdio/CMakeLists.txt @@ -26,9 +26,6 @@ if(NOT LIBC_TARGET_ARCHITECTURE_IS_GPU) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/generic) endif() -add_subdirectory(printf_core) -add_subdirectory(scanf_core) - add_entrypoint_object( fflush SRCS @@ -286,6 +283,9 @@ add_entrypoint_object( ${printf_copts} ) +add_subdirectory(printf_core) +add_subdirectory(scanf_core) + add_entrypoint_object( ftell SRCS diff --git a/libc/test/src/stdio/CMakeLists.txt b/libc/test/src/stdio/CMakeLists.txt index e042a8bd8be68f..98fa2deb8b0e25 100644 --- a/libc/test/src/stdio/CMakeLists.txt +++ b/libc/test/src/stdio/CMakeLists.txt @@ -112,6 +112,16 @@ add_libc_unittest( LibcMemoryHelpers ) +if(LIBC_CONF_PRINTF_DISABLE_FLOAT) + list(APPEND sprintf_test_copts "-DLIBC_COPT_PRINTF_DISABLE_FLOAT") +endif() +if(LIBC_CONF_PRINTF_DISABLE_INDEX_MODE) + list(APPEND sprintf_test_copts "-DLIBC_COPT_PRINTF_DISABLE_INDEX_MODE") +endif() +if(LIBC_CONF_PRINTF_DISABLE_WRITE_INT) + list(APPEND sprintf_test_copts "-DLIBC_COPT_PRINTF_DISABLE_WRITE_INT") +endif() + add_fp_unittest( sprintf_test UNIT_TEST_ONLY @@ -123,6 +133,8 @@ add_fp_unittest( libc.src.stdio.sprintf libc.src.__support.FPUtil.fp_bits libc.src.__support.FPUtil.platform_defs + COMPILE_OPTIONS + ${sprintf_test_copts} ) add_libc_unittest(