[libc-commits] [libc] [libc] Add baremetal minor archive support. (PR #203015)

Petr Hosek via libc-commits libc-commits at lists.llvm.org
Thu Jun 11 00:38:29 PDT 2026


================
@@ -1,15 +1,40 @@
+set(libc_subarchive_entrypoints "")
+if(ENABLE_LLVM_LIBC_MINOR_VARIANT)
+  if(NOT LIBC_TARGET_OS_IS_BAREMETAL)
+    message(FATAL_ERROR
+            "ENABLE_LLVM_LIBC_MINOR_VARIANT is only supported on baremetal targets.")
+  endif()
+  if(NOT LLVM_LIBC_SUBARCHIVE_NAME)
+    message(FATAL_ERROR
+            "ENABLE_LLVM_LIBC_MINOR_VARIANT requires LLVM_LIBC_SUBARCHIVE_NAME to be set.")
+  endif()
+endif()
+
 set(libc_archive_targets "")
 set(libc_archive_names "")
 set(libc_archive_entrypoint_lists "")
-if(LLVM_LIBC_FULL_BUILD)
-  list(APPEND libc_archive_names c m mvec)
-  list(APPEND libc_archive_targets libc libm libmvec)
-  list(APPEND libc_archive_entrypoint_lists
-       TARGET_LIBC_ENTRYPOINTS TARGET_LIBM_ENTRYPOINTS TARGET_LIBMVEC_ENTRYPOINTS)
+if(NOT ENABLE_LLVM_LIBC_MINOR_VARIANT)
----------------
petrhosek wrote:

The name should be `LLVM_LIBC_ENABLE_MINOR_VARIANT` to match the existing pattern and it should be defined as an option https://github.com/llvm/llvm-project/blob/main/libc/CMakeLists.txt.

Personally, for `if ... else` cases I usually prefer leading with the positive case:
```
if(LLVM_LIBC_ENABLE_MINOR_VARIANT)
  ...
else()
  ...
endif()
```

https://github.com/llvm/llvm-project/pull/203015


More information about the libc-commits mailing list