[libcxx-commits] [libcxx] [libcxx] fix includes for explicit Clang module build (PR #126474)

Takuto Ikuta via libcxx-commits libcxx-commits at lists.llvm.org
Sun Feb 9 23:08:35 PST 2025


https://github.com/atetubou created https://github.com/llvm/llvm-project/pull/126474

This fixes many build errors due to missing includes when I use `libcxx_enable_explicit_modules` which will be introduced in https://github.com/llvm/llvm-project/pull/126017.

>From 1ffa955ed94bc3ff07798904efde5d35123aa23f Mon Sep 17 00:00:00 2001
From: Takuto Ikuta <tikuta at google.com>
Date: Mon, 10 Feb 2025 14:47:58 +0900
Subject: [PATCH] git squash commit for fix_modules_build.

47c3f3d3f522e60bc494b70ffd7ea7a2046e8238
git squash commit for fix_modules_build.

5e565c1b781f1200f2ca5489c7a8fd2b176b15ed
fix include

fb8ee3631b5269f3c5001514ea678b0900bd3c47
memory

dad1a4c4ea904c0f6cff31574788c0957bc4c74a
fix module build

33d9547f63167a6f7e2f6e78fd6d7a7ef83c8bc2
hoge

f7d1acf79b29663c52c351319eb977ec08ca6b11
hoge
---
 libcxx/include/__filesystem/path.h           | 1 +
 libcxx/include/__vector/vector_bool.h        | 1 +
 libcxx/src/condition_variable.cpp            | 4 ++++
 libcxx/src/experimental/time_zone.cpp        | 3 +++
 libcxx/src/filesystem/directory_iterator.cpp | 1 +
 libcxx/src/filesystem/error.h                | 2 ++
 libcxx/src/filesystem/filesystem_clock.cpp   | 2 ++
 libcxx/src/filesystem/filesystem_error.cpp   | 1 +
 libcxx/src/include/ryu/common.h              | 1 +
 libcxx/src/memory.cpp                        | 2 ++
 libcxx/src/memory_resource.cpp               | 1 +
 libcxx/src/mutex.cpp                         | 1 +
 libcxx/src/random.cpp                        | 1 +
 libcxx/src/ryu/d2fixed.cpp                   | 1 +
 libcxx/src/ryu/d2s.cpp                       | 1 +
 libcxx/src/ryu/f2s.cpp                       | 1 +
 libcxx/src/thread.cpp                        | 2 ++
 libcxx/src/vector.cpp                        | 1 +
 18 files changed, 27 insertions(+)

diff --git a/libcxx/include/__filesystem/path.h b/libcxx/include/__filesystem/path.h
index 0a751ba32954fd6..698ae209ae1f8ac 100644
--- a/libcxx/include/__filesystem/path.h
+++ b/libcxx/include/__filesystem/path.h
@@ -18,6 +18,7 @@
 #include <__iterator/back_insert_iterator.h>
 #include <__iterator/iterator_traits.h>
 #include <__type_traits/decay.h>
+#include <__type_traits/enable_if.h>
 #include <__type_traits/is_pointer.h>
 #include <__type_traits/remove_const.h>
 #include <__type_traits/remove_pointer.h>
diff --git a/libcxx/include/__vector/vector_bool.h b/libcxx/include/__vector/vector_bool.h
index 35f0f745e201c3a..714c86ae2bb96a0 100644
--- a/libcxx/include/__vector/vector_bool.h
+++ b/libcxx/include/__vector/vector_bool.h
@@ -18,6 +18,7 @@
 #include <__bit_reference>
 #include <__config>
 #include <__functional/unary_function.h>
+#include <__fwd/bit_reference.h>
 #include <__fwd/functional.h>
 #include <__fwd/vector.h>
 #include <__iterator/distance.h>
diff --git a/libcxx/src/condition_variable.cpp b/libcxx/src/condition_variable.cpp
index db60571cf5f5601..42385782e7a2f2d 100644
--- a/libcxx/src/condition_variable.cpp
+++ b/libcxx/src/condition_variable.cpp
@@ -6,7 +6,11 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include <chrono>
 #include <condition_variable>
+#include <limits>
+#include <ratio>
+#include <system_error>
 #include <thread>
 
 #if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
diff --git a/libcxx/src/experimental/time_zone.cpp b/libcxx/src/experimental/time_zone.cpp
index 289164ab1203642..28fd7a365a7b0bc 100644
--- a/libcxx/src/experimental/time_zone.cpp
+++ b/libcxx/src/experimental/time_zone.cpp
@@ -33,8 +33,11 @@
 #include <cctype>
 #include <chrono>
 #include <expected>
+#include <format>
+#include <functional>
 #include <map>
 #include <numeric>
+#include <optional>
 #include <ranges>
 
 #include "include/tzdb/time_zone_private.h"
diff --git a/libcxx/src/filesystem/directory_iterator.cpp b/libcxx/src/filesystem/directory_iterator.cpp
index 7e8e40d17f7a0de..a3ceedac102b970 100644
--- a/libcxx/src/filesystem/directory_iterator.cpp
+++ b/libcxx/src/filesystem/directory_iterator.cpp
@@ -10,6 +10,7 @@
 #include <__config>
 #include <errno.h>
 #include <filesystem>
+#include <memory>
 #include <stack>
 #include <utility>
 
diff --git a/libcxx/src/filesystem/error.h b/libcxx/src/filesystem/error.h
index c0213910b3780a5..7b3f56bdcd1c6e3 100644
--- a/libcxx/src/filesystem/error.h
+++ b/libcxx/src/filesystem/error.h
@@ -11,7 +11,9 @@
 
 #include <__assert>
 #include <__config>
+#include <algorithm>
 #include <cerrno>
+#include <chrono>
 #include <cstdarg>
 #include <cstddef>
 #include <cstdint>
diff --git a/libcxx/src/filesystem/filesystem_clock.cpp b/libcxx/src/filesystem/filesystem_clock.cpp
index e1f887072201876..2335d048b3139ee 100644
--- a/libcxx/src/filesystem/filesystem_clock.cpp
+++ b/libcxx/src/filesystem/filesystem_clock.cpp
@@ -10,6 +10,8 @@
 #include <__system_error/throw_system_error.h>
 #include <chrono>
 #include <filesystem>
+#include <ratio>
+#include <errno.h>
 #include <time.h>
 
 #if defined(_LIBCPP_WIN32API)
diff --git a/libcxx/src/filesystem/filesystem_error.cpp b/libcxx/src/filesystem/filesystem_error.cpp
index 456b902c331541c..4edd2a477057535 100644
--- a/libcxx/src/filesystem/filesystem_error.cpp
+++ b/libcxx/src/filesystem/filesystem_error.cpp
@@ -9,6 +9,7 @@
 #include <__config>
 #include <__utility/unreachable.h>
 #include <filesystem>
+#include <memory>
 #include <system_error>
 
 #include "format_string.h"
diff --git a/libcxx/src/include/ryu/common.h b/libcxx/src/include/ryu/common.h
index d5168d8710bf269..591ec414f850d06 100644
--- a/libcxx/src/include/ryu/common.h
+++ b/libcxx/src/include/ryu/common.h
@@ -44,6 +44,7 @@
 
 #include <__assert>
 #include <__config>
+#include <cstdint>
 #include <cstring>
 
 _LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/libcxx/src/memory.cpp b/libcxx/src/memory.cpp
index 16190c242c1487e..68df61f96c9bec5 100644
--- a/libcxx/src/memory.cpp
+++ b/libcxx/src/memory.cpp
@@ -11,7 +11,9 @@
 #  define _LIBCPP_SHARED_PTR_DEFINE_LEGACY_INLINE_FUNCTIONS
 #endif
 
+#include <functional>
 #include <memory>
+#include <typeinfo>
 
 #if _LIBCPP_HAS_THREADS
 #  include <mutex>
diff --git a/libcxx/src/memory_resource.cpp b/libcxx/src/memory_resource.cpp
index ec9565f731bfac6..2c7d9aef6dc3f43 100644
--- a/libcxx/src/memory_resource.cpp
+++ b/libcxx/src/memory_resource.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <memory_resource>
 
diff --git a/libcxx/src/mutex.cpp b/libcxx/src/mutex.cpp
index 2f8504d602dc9f4..54da662b7a4cc53 100644
--- a/libcxx/src/mutex.cpp
+++ b/libcxx/src/mutex.cpp
@@ -11,6 +11,7 @@
 #include <__utility/exception_guard.h>
 #include <limits>
 #include <mutex>
+#include <system_error>
 
 #include "include/atomic_support.h"
 
diff --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp
index 3830e3918d2ee47..dddad84f027ef8c 100644
--- a/libcxx/src/random.cpp
+++ b/libcxx/src/random.cpp
@@ -16,6 +16,7 @@
 #include <__system_error/throw_system_error.h>
 #include <limits>
 #include <random>
+#include <string>
 
 #include <errno.h>
 #include <stdio.h>
diff --git a/libcxx/src/ryu/d2fixed.cpp b/libcxx/src/ryu/d2fixed.cpp
index 4cfc39535988e29..abfa340830b1bbd 100644
--- a/libcxx/src/ryu/d2fixed.cpp
+++ b/libcxx/src/ryu/d2fixed.cpp
@@ -42,6 +42,7 @@
 #include <__assert>
 #include <__config>
 #include <charconv>
+#include <cstddef>
 #include <cstring>
 
 #include "include/ryu/common.h"
diff --git a/libcxx/src/ryu/d2s.cpp b/libcxx/src/ryu/d2s.cpp
index 5b80ed8a709d8e6..c0d11107f880b1d 100644
--- a/libcxx/src/ryu/d2s.cpp
+++ b/libcxx/src/ryu/d2s.cpp
@@ -42,6 +42,7 @@
 #include <__assert>
 #include <__config>
 #include <charconv>
+#include <cstddef>
 
 #include "include/ryu/common.h"
 #include "include/ryu/d2fixed.h"
diff --git a/libcxx/src/ryu/f2s.cpp b/libcxx/src/ryu/f2s.cpp
index f42fbd68c91d2d4..116294e44841c6e 100644
--- a/libcxx/src/ryu/f2s.cpp
+++ b/libcxx/src/ryu/f2s.cpp
@@ -42,6 +42,7 @@
 #include <__assert>
 #include <__config>
 #include <charconv>
+#include <cstddef>
 
 #include "include/ryu/common.h"
 #include "include/ryu/d2fixed.h"
diff --git a/libcxx/src/thread.cpp b/libcxx/src/thread.cpp
index 73f22f12d8ccd29..d9e229f834e630d 100644
--- a/libcxx/src/thread.cpp
+++ b/libcxx/src/thread.cpp
@@ -6,12 +6,14 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include <__system_error/throw_system_error.h>
 #include <__thread/poll_with_backoff.h>
 #include <__thread/timed_backoff_policy.h>
 #include <exception>
 #include <future>
 #include <limits>
 #include <thread>
+#include <utility>
 #include <vector>
 
 #if __has_include(<unistd.h>)
diff --git a/libcxx/src/vector.cpp b/libcxx/src/vector.cpp
index 3f3a906d6421f0a..60bf6fbe8d691f8 100644
--- a/libcxx/src/vector.cpp
+++ b/libcxx/src/vector.cpp
@@ -6,6 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include <stdexcept>
 #include <vector>
 
 _LIBCPP_BEGIN_NAMESPACE_STD



More information about the libcxx-commits mailing list