[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