summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorPrabhu Rajasekaran <prabhukr@google.com>2025-11-17 12:08:39 -0800
committerGitHub <noreply@github.com>2025-11-17 12:08:39 -0800
commitb32c434426a181590234f65f2e32f43735bf5b5a (patch)
treeb4d1dca63d62c7f8164a7ef26d4a9e77ea6a0274 /libc
parent320c18a066b29e90ab5f3ef33b6c510f28edeb80 (diff)
[libc][Github] Perform baremetal libc builds (#167583)
Currently there are no 32 bit presubmit builds for libc. This PR performs 32 bit build only (no test) to check any changes that land in libc break 32 bit builds. Co-authored-by: Aiden Grossman <aidengrossman@google.com>
Diffstat (limited to 'libc')
-rw-r--r--libc/cmake/caches/armv6m-none-eabi.cmake8
-rw-r--r--libc/cmake/caches/armv7em-none-eabi.cmake8
-rw-r--r--libc/cmake/caches/armv7m-none-eabi.cmake8
-rw-r--r--libc/cmake/caches/armv8.1m.main-none-eabi.cmake8
-rw-r--r--libc/cmake/caches/armv8m.main-none-eabi.cmake8
-rw-r--r--libc/cmake/caches/baremetal_common.cmake21
-rw-r--r--libc/cmake/caches/riscv32-unknown-elf.cmake4
7 files changed, 65 insertions, 0 deletions
diff --git a/libc/cmake/caches/armv6m-none-eabi.cmake b/libc/cmake/caches/armv6m-none-eabi.cmake
new file mode 100644
index 000000000000..1f463ae5c0ea
--- /dev/null
+++ b/libc/cmake/caches/armv6m-none-eabi.cmake
@@ -0,0 +1,8 @@
+set(CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "")
+set(RUNTIMES_TARGET_TRIPLE "armv6m-none-eabi" CACHE STRING "")
+
+foreach(lang C;CXX;ASM)
+ set(CMAKE_${lang}_FLAGS "-march=armv6m -mcpu=cortex-m0plus -mfloat-abi=soft -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dfputs(string, stream)=puts(string)\" -D_LIBCPP_PRINT=1" CACHE STRING "")
+endforeach()
+
+include(${CMAKE_CURRENT_LIST_DIR}/baremetal_common.cmake)
diff --git a/libc/cmake/caches/armv7em-none-eabi.cmake b/libc/cmake/caches/armv7em-none-eabi.cmake
new file mode 100644
index 000000000000..afbe9c87dffe
--- /dev/null
+++ b/libc/cmake/caches/armv7em-none-eabi.cmake
@@ -0,0 +1,8 @@
+set(CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "")
+set(RUNTIMES_TARGET_TRIPLE "armv7em-none-eabi" CACHE STRING "")
+
+foreach(lang C;CXX;ASM)
+ set(CMAKE_${lang}_FLAGS "-march=armv7em -mcpu=cortex-m4 -mfloat-abi=soft -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dfputs(string, stream)=puts(string)\" -D_LIBCPP_PRINT=1" CACHE STRING "")
+endforeach()
+
+include(${CMAKE_CURRENT_LIST_DIR}/baremetal_common.cmake)
diff --git a/libc/cmake/caches/armv7m-none-eabi.cmake b/libc/cmake/caches/armv7m-none-eabi.cmake
new file mode 100644
index 000000000000..796adb2f3114
--- /dev/null
+++ b/libc/cmake/caches/armv7m-none-eabi.cmake
@@ -0,0 +1,8 @@
+set(CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "")
+set(RUNTIMES_TARGET_TRIPLE "armv7m-none-eabi" CACHE STRING "")
+
+foreach(lang C;CXX;ASM)
+ set(CMAKE_${lang}_FLAGS "-march=armv7m -mcpu=cortex-m4 -mfloat-abi=soft -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dfputs(string, stream)=puts(string)\" -D_LIBCPP_PRINT=1" CACHE STRING "")
+endforeach()
+
+include(${CMAKE_CURRENT_LIST_DIR}/baremetal_common.cmake)
diff --git a/libc/cmake/caches/armv8.1m.main-none-eabi.cmake b/libc/cmake/caches/armv8.1m.main-none-eabi.cmake
new file mode 100644
index 000000000000..4095facce46a
--- /dev/null
+++ b/libc/cmake/caches/armv8.1m.main-none-eabi.cmake
@@ -0,0 +1,8 @@
+set(CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "")
+set(RUNTIMES_TARGET_TRIPLE "armv8.1m.main-none-eabi" CACHE STRING "")
+
+foreach(lang C;CXX;ASM)
+ set(CMAKE_${lang}_FLAGS "-mfloat-abi=hard -march=armv8.1-m.main+mve.fp+fp.dp -mcpu=cortex-m55" CACHE STRING "")
+endforeach()
+
+include(${CMAKE_CURRENT_LIST_DIR}/baremetal_common.cmake)
diff --git a/libc/cmake/caches/armv8m.main-none-eabi.cmake b/libc/cmake/caches/armv8m.main-none-eabi.cmake
new file mode 100644
index 000000000000..4b69f6a822e7
--- /dev/null
+++ b/libc/cmake/caches/armv8m.main-none-eabi.cmake
@@ -0,0 +1,8 @@
+set(CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "")
+set(RUNTIMES_TARGET_TRIPLE "armv8m.main-none-eabi" CACHE STRING "")
+
+foreach(lang C;CXX;ASM)
+ set(CMAKE_${lang}_FLAGS "-mfloat-abi=softfp -march=armv8m.main+fp+dsp -mcpu=cortex-m33" CACHE STRING "")
+endforeach()
+
+include(${CMAKE_CURRENT_LIST_DIR}/baremetal_common.cmake)
diff --git a/libc/cmake/caches/baremetal_common.cmake b/libc/cmake/caches/baremetal_common.cmake
new file mode 100644
index 000000000000..c0d665d79039
--- /dev/null
+++ b/libc/cmake/caches/baremetal_common.cmake
@@ -0,0 +1,21 @@
+# Expects target triple to be passed as `RUNTIMES_TARGET_TRIPLE`
+
+set(CMAKE_SYSTEM_NAME Generic CACHE STRING "")
+set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY CACHE STRING "")
+set(LLVM_ENABLE_RUNTIMES "libc" CACHE STRING "")
+set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
+set(CMAKE_C_COMPILER_WORKS ON CACHE BOOL "")
+set(CMAKE_CXX_COMPILER_WORKS ON CACHE BOOL "")
+set(CMAKE_SYSROOT "" CACHE STRING "")
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+set(CMAKE_C_COMPILER_TARGET ${RUNTIMES_TARGET_TRIPLE} CACHE STRING "")
+set(CMAKE_CXX_COMPILER_TARGET ${RUNTIMES_TARGET_TRIPLE} CACHE STRING "")
+set(CMAKE_ASM_COMPILER_TARGET ${RUNTIMES_TARGET_TRIPLE} CACHE STRING "")
+set(LLVM_DEFAULT_TARGET_TRIPLE ${RUNTIMES_TARGET_TRIPLE} CACHE STRING "")
+set(LIBC_TARGET_TRIPLE ${RUNTIMES_TARGET_TRIPLE} CACHE STRING "")
+
+set(LLVM_LIBC_FULL_BUILD "ON" CACHE BOOL "")
diff --git a/libc/cmake/caches/riscv32-unknown-elf.cmake b/libc/cmake/caches/riscv32-unknown-elf.cmake
new file mode 100644
index 000000000000..960fb2bb51a4
--- /dev/null
+++ b/libc/cmake/caches/riscv32-unknown-elf.cmake
@@ -0,0 +1,4 @@
+set(CMAKE_SYSTEM_PROCESSOR RISCV CACHE STRING "")
+set(RUNTIMES_TARGET_TRIPLE "riscv32-unknown-elf" CACHE STRING "")
+
+include(${CMAKE_CURRENT_LIST_DIR}/baremetal_common.cmake)