[libc-commits] [libc] e0e7fa3 - [libc] enable s(n)printf without fullbuild
Michael Jones via libc-commits
libc-commits at lists.llvm.org
Mon Aug 15 13:45:39 PDT 2022
Author: Michael Jones
Date: 2022-08-15T13:45:34-07:00
New Revision: e0e7fa36d36c4f576176a6b15a0eb235befc3fa3
URL: https://github.com/llvm/llvm-project/commit/e0e7fa36d36c4f576176a6b15a0eb235befc3fa3
DIFF: https://github.com/llvm/llvm-project/commit/e0e7fa36d36c4f576176a6b15a0eb235befc3fa3.diff
LOG: [libc] enable s(n)printf without fullbuild
To use the FILE data structure, LLVM-libc must be in fullbuild mode
since it expects its own implementation. This means that (f)printf can't
be used without fullbuild, but s(n)printf only uses strings. This patch
adjusts the CMake to allow for this.
Reviewed By: sivachandra, lntue
Differential Revision: https://reviews.llvm.org/D131913
Added:
Modified:
libc/config/linux/aarch64/entrypoints.txt
libc/config/linux/x86_64/entrypoints.txt
libc/src/CMakeLists.txt
libc/test/src/CMakeLists.txt
libc/utils/UnitTest/CMakeLists.txt
Removed:
################################################################################
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index 2b85644b674bc..1024e80eff5a6 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -91,6 +91,10 @@ set(TARGET_LIBC_ENTRYPOINTS
libc.src.stdlib.realloc
libc.src.stdlib.free
+ # stdio.h entrypoints
+ libc.src.stdio.sprintf
+ libc.src.stdio.snprintf
+
# sys/stat.h entrypoints
libc.src.sys.stat.mkdir
libc.src.sys.stat.mkdirat
@@ -242,8 +246,6 @@ if(LLVM_LIBC_FULL_BUILD)
libc.src.stdio.funlockfile
libc.src.stdio.fwrite
libc.src.stdio.fwrite_unlocked
- libc.src.stdio.sprintf
- libc.src.stdio.snprintf
libc.src.stdio.fprintf
libc.src.stdio.printf
libc.src.stdio.stderr
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index 80285f81dfc3a..c8d3c8370e98a 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -92,6 +92,10 @@ set(TARGET_LIBC_ENTRYPOINTS
libc.src.stdlib.aligned_alloc
libc.src.stdlib.free
+ # stdio.h entrypoints
+ libc.src.stdio.sprintf
+ libc.src.stdio.snprintf
+
# sys/mman.h entrypoints
libc.src.sys.mman.mmap
libc.src.sys.mman.munmap
@@ -298,8 +302,6 @@ if(LLVM_LIBC_FULL_BUILD)
libc.src.stdio.funlockfile
libc.src.stdio.fwrite
libc.src.stdio.fwrite_unlocked
- libc.src.stdio.sprintf
- libc.src.stdio.snprintf
libc.src.stdio.fprintf
libc.src.stdio.printf
libc.src.stdio.stderr
diff --git a/libc/src/CMakeLists.txt b/libc/src/CMakeLists.txt
index 19664ec13844b..a44203eb5ee0e 100644
--- a/libc/src/CMakeLists.txt
+++ b/libc/src/CMakeLists.txt
@@ -7,6 +7,7 @@ add_subdirectory(inttypes)
add_subdirectory(math)
add_subdirectory(string)
add_subdirectory(stdlib)
+add_subdirectory(stdio)
if(${LIBC_TARGET_OS} STREQUAL "linux")
add_subdirectory(dirent)
@@ -24,6 +25,5 @@ endif()
# since assert uses the signal API, we disable assert also.
# add_subdirectory(assert)
# add_subdirectory(signal)
-add_subdirectory(stdio)
add_subdirectory(threads)
add_subdirectory(time)
diff --git a/libc/test/src/CMakeLists.txt b/libc/test/src/CMakeLists.txt
index 03aac2669092f..94a73f3e65a1b 100644
--- a/libc/test/src/CMakeLists.txt
+++ b/libc/test/src/CMakeLists.txt
@@ -34,6 +34,7 @@ add_subdirectory(inttypes)
add_subdirectory(math)
add_subdirectory(string)
add_subdirectory(stdlib)
+add_subdirectory(stdio)
if(${LIBC_TARGET_OS} STREQUAL "linux")
add_subdirectory(fcntl)
@@ -50,7 +51,6 @@ add_subdirectory(dirent)
# since assert uses the signal API, we disable assert also.
# add_subdirectory(assert)
# add_subdirectory(signal)
-add_subdirectory(stdio)
add_subdirectory(time)
if(${LIBC_TARGET_OS} STREQUAL "linux")
diff --git a/libc/utils/UnitTest/CMakeLists.txt b/libc/utils/UnitTest/CMakeLists.txt
index bc9e7b3e607da..34c49b9ec02a8 100644
--- a/libc/utils/UnitTest/CMakeLists.txt
+++ b/libc/utils/UnitTest/CMakeLists.txt
@@ -54,13 +54,6 @@ add_dependencies(
libc.src.__support.CPP.array_ref
)
-if(NOT LLVM_LIBC_FULL_BUILD) # TODO(michaelrj): make a more permanant solution.
- return()
-endif()
-
-#currently stdio is fullbuild only, so this matcher that depends on a piece of
-#printf also has to be fullbuild only.
-
add_library(
LibcPrintfHelpers
PrintfMatcher.h
More information about the libc-commits
mailing list