[libcxx-commits] [libcxx] Commit mostly working single wrapped module map (PR #87402)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Apr 5 10:13:21 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Eric (EricWF)
<details>
<summary>Changes</summary>
This patch is what I use to use modules on Linux when building LLVM.
Without it there are race conditions around the building of each individual module.
I have not validated this on Mac, or with the various submodule visibilitys
This patch also removes two module declarations for modules which don't exist
---
Patch is 237.03 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/87402.diff
1 Files Affected:
- (modified) libcxx/include/module.modulemap (+2052-2050)
``````````diff
diff --git a/libcxx/include/module.modulemap b/libcxx/include/module.modulemap
index 22c380327f1579..f7eac09703eaf5 100644
--- a/libcxx/include/module.modulemap
+++ b/libcxx/include/module.modulemap
@@ -1,2101 +1,2103 @@
// Main C++ standard library interfaces
-module std_algorithm [system] {
- header "algorithm"
- export *
-}
-module std_any [system] {
- header "any"
- export *
-}
-module std_array [system] {
- header "array"
- export *
-}
-module std_atomic [system] {
- header "atomic"
- export *
-}
-module std_barrier [system] {
- header "barrier"
- export *
-}
-module std_bit [system] {
- header "bit"
- export *
-}
-module std_bitset [system] {
- header "bitset"
- export *
-}
-module std_charconv [system] {
- header "charconv"
- export *
-}
-module std_chrono [system] {
- header "chrono"
- export *
-}
-module std_codecvt [system] {
- header "codecvt"
- export *
-}
-module std_compare [system] {
- header "compare"
- export *
-}
-module std_complex [system] {
- header "complex"
- export *
-}
-module std_concepts [system] {
- header "concepts"
- export *
-}
-module std_condition_variable [system] {
- header "condition_variable"
- export *
-}
-module std_coroutine [system] {
- header "coroutine"
- export *
-}
-module std_deque [system] {
- header "deque"
- export *
-}
-module std_exception [system] {
- header "exception"
- export *
-}
-module std_execution [system] {
- header "execution"
- export *
-}
-module std_expected [system] {
- header "expected"
- export *
-}
-module std_filesystem [system] {
- header "filesystem"
- export *
-}
-module std_format [system] {
- header "format"
- export *
-}
-module std_forward_list [system] {
- header "forward_list"
- export *
-}
-module std_fstream [system] {
- header "fstream"
- export *
-}
-module std_functional [system] {
- header "functional"
- export *
-}
-module std_future [system] {
- header "future"
- export *
-}
-module std_initializer_list [system] {
- header "initializer_list"
- export *
-}
-module std_iomanip [system] {
- header "iomanip"
- export *
-}
-module std_ios [system] {
- header "ios"
- export *
-}
-module std_iosfwd [system] {
- header "iosfwd"
- export *
-}
-module std_iostream [system] {
- header "iostream"
- export *
-}
-module std_istream [system] {
- header "istream"
- export *
-}
-module std_iterator [system] {
- header "iterator"
- export *
-}
-module std_latch [system] {
- header "latch"
- export *
-}
-module std_limits [system] {
- header "limits"
- export *
-}
-module std_list [system] {
- header "list"
- export *
-}
-module std_locale [system] {
- header "locale"
- export *
-}
-module std_map [system] {
- header "map"
- export *
-}
-module std_mdspan [system] {
- header "mdspan"
- export *
-}
-module std_memory [system] {
- header "memory"
- export *
-}
-module std_memory_resource [system] {
- header "memory_resource"
- export *
-}
-module std_mutex [system] {
- header "mutex"
- export *
-}
-module std_new [system] {
- header "new"
- export *
-}
-module std_numbers [system] {
- header "numbers"
- export *
-}
-module std_numeric [system] {
- header "numeric"
- export *
-}
-module std_optional [system] {
- header "optional"
- export *
-}
-module std_ostream [system] {
- header "ostream"
- export *
-}
-module std_print [system] {
- header "print"
- export *
-}
-module std_queue [system] {
- header "queue"
- export *
-}
-module std_random [system] {
- header "random"
- export *
-}
-module std_ranges [system] {
- header "ranges"
- export *
-}
-module std_ratio [system] {
- header "ratio"
- export *
-}
-module std_regex [system] {
- header "regex"
- export *
-}
-module std_scoped_allocator [system] {
- header "scoped_allocator"
- export *
-}
-module std_semaphore [system] {
- header "semaphore"
- export *
-}
-module std_set [system] {
- header "set"
- export *
-}
-module std_shared_mutex [system] {
- header "shared_mutex"
- export std_version
-}
-module std_source_location [system] {
- header "source_location"
- export *
-}
-module std_span [system] {
- header "span"
- export std_private_ranges_enable_borrowed_range
- export std_version
- export std_private_span_span_fwd
-}
-module std_sstream [system] {
- header "sstream"
- export *
-}
-module std_stack [system] {
- header "stack"
- export *
-}
-module std_stdexcept [system] {
- header "stdexcept"
- export *
-}
-module std_stop_token {
- header "stop_token"
- export *
-}
-module std_streambuf [system] {
- header "streambuf"
- export *
-}
-module std_string [system] {
- header "string"
- export *
-}
-module std_string_view [system] {
- header "string_view"
- export *
-}
-module std_strstream [system] {
- header "strstream"
- export *
-}
-module std_syncstream [system] {
- header "syncstream"
- export *
-}
-module std_system_error [system] {
- header "system_error"
- export *
-}
-module std_thread [system] {
- header "thread"
- export *
-}
-module std_tuple [system] {
- header "tuple"
- export *
-}
-module std_type_traits [system] {
- header "type_traits"
- export *
-}
-module std_typeindex [system] {
- header "typeindex"
- export *
-}
-module std_typeinfo [system] {
- header "typeinfo"
- export *
-}
-module std_unordered_map [system] {
- header "unordered_map"
- export *
-}
-module std_unordered_set [system] {
- header "unordered_set"
- export *
-}
-module std_utility [system] {
- header "utility"
- export *
-}
-module std_valarray [system] {
- header "valarray"
- export *
-}
-module std_variant [system] {
- header "variant"
- export *
-}
-module std_vector [system] {
- header "vector"
- export *
-}
-module std_version [system] {
- header "version"
- export *
+module std_config [system] [extern_c] {
+ header "__config"
}
-// C standard library interface wrappers
-module std_cassert [system] {
- // <cassert>'s use of NDEBUG requires textual inclusion.
- textual header "cassert"
-}
-module std_ccomplex [system] {
- header "ccomplex"
- export *
-}
-module std_cctype [system] {
- header "cctype"
- export *
-}
-module std_cerrno [system] {
- header "cerrno"
- export *
-}
-module std_cfenv [system] {
- header "cfenv"
- export *
-}
-module std_cfloat [system] {
- header "cfloat"
- export *
-}
-module std_cinttypes [system] {
- header "cinttypes"
- export *
-}
-module std_ciso646 [system] {
- header "ciso646"
- export *
-}
-module std_climits [system] {
- header "climits"
- export *
-}
-module std_clocale [system] {
- header "clocale"
- export *
-}
-module std_cmath [system] {
- header "cmath"
- export *
-}
-module std_csetjmp [system] {
- header "csetjmp"
- export *
-}
-module std_csignal [system] {
- header "csignal"
- export *
-}
-// FIXME: <cstdalign> is missing.
-module std_cstdarg [system] {
- header "cstdarg"
- export *
-}
-module std_cstdbool [system] {
- header "cstdbool"
- export *
-}
-module std_cstddef [system] {
- header "cstddef"
- export *
-}
-module std_cstdint [system] {
- header "cstdint"
- export *
-}
-module std_cstdio [system] {
- header "cstdio"
- export *
-}
-module std_cstdlib [system] {
- header "cstdlib"
- export *
-}
-module std_cstring [system] {
- header "cstring"
- export *
-}
-module std_ctgmath [system] {
- header "ctgmath"
- export *
-}
-module std_ctime [system] {
- header "ctime"
- export *
-}
-module std_cuchar [system] {
- header "cuchar"
- export *
-}
-module std_cwchar [system] {
- header "cwchar"
- export *
-}
-module std_cwctype [system] {
- header "cwctype"
- export *
-}
+module std [system] {
+ module std_algorithm [system] {
+ header "algorithm"
+ export *
+ }
+ module std_any [system] {
+ header "any"
+ export *
+ }
+ module std_array [system] {
+ header "array"
+ export *
+ }
+ module std_atomic [system] {
+ header "atomic"
+ export *
+ }
+ module std_barrier [system] {
+ header "barrier"
+ export *
+ }
+ module std_bit [system] {
+ header "bit"
+ export *
+ }
+ module std_bitset [system] {
+ header "bitset"
+ export *
+ }
+ module std_charconv [system] {
+ header "charconv"
+ export *
+ }
+ module std_chrono [system] {
+ header "chrono"
+ export *
+ }
+ module std_codecvt [system] {
+ header "codecvt"
+ export *
+ }
+ module std_compare [system] {
+ header "compare"
+ export *
+ }
+ module std_complex [system] {
+ header "complex"
+ export *
+ }
+ module std_concepts [system] {
+ header "concepts"
+ export *
+ }
+ module std_condition_variable [system] {
+ header "condition_variable"
+ export *
+ }
+ module std_coroutine [system] {
+ header "coroutine"
+ export *
+ }
+ module std_deque [system] {
+ header "deque"
+ export *
+ }
+ module std_exception [system] {
+ header "exception"
+ export *
+ }
+ module std_execution [system] {
+ header "execution"
+ export *
+ }
+ module std_expected [system] {
+ header "expected"
+ export *
+ }
+ module std_filesystem [system] {
+ header "filesystem"
+ export *
+ }
+ module std_format [system] {
+ header "format"
+ export *
+ }
+ module std_forward_list [system] {
+ header "forward_list"
+ export *
+ }
+ module std_fstream [system] {
+ header "fstream"
+ export *
+ }
+ module std_functional [system] {
+ header "functional"
+ export *
+ }
+ module std_future [system] {
+ header "future"
+ export *
+ }
+ module std_initializer_list [system] {
+ header "initializer_list"
+ export *
+ }
+ module std_iomanip [system] {
+ header "iomanip"
+ export *
+ }
+ module std_ios [system] {
+ header "ios"
+ export *
+ }
+ module std_iosfwd [system] {
+ header "iosfwd"
+ export *
+ }
+ module std_iostream [system] {
+ header "iostream"
+ export *
+ }
+ module std_istream [system] {
+ header "istream"
+ export *
+ }
+ module std_iterator [system] {
+ header "iterator"
+ export *
+ }
+ module std_latch [system] {
+ header "latch"
+ export *
+ }
+ module std_limits [system] {
+ header "limits"
+ export *
+ }
+ module std_list [system] {
+ header "list"
+ export *
+ }
+ module std_locale [system] {
+ header "locale"
+ export *
+ }
+ module std_map [system] {
+ header "map"
+ export *
+ }
+ module std_mdspan [system] {
+ header "mdspan"
+ export *
+ }
+ module std_memory [system] {
+ header "memory"
+ export *
+ }
+ module std_memory_resource [system] {
+ header "memory_resource"
+ export *
+ }
+ module std_mutex [system] {
+ header "mutex"
+ export *
+ }
+ module std_new [system] {
+ header "new"
+ export *
+ }
+ module std_numbers [system] {
+ header "numbers"
+ export *
+ }
+ module std_numeric [system] {
+ header "numeric"
+ export *
+ }
+ module std_optional [system] {
+ header "optional"
+ export *
+ }
+ module std_ostream [system] {
+ header "ostream"
+ export *
+ }
+ module std_print [system] {
+ header "print"
+ export *
+ }
+ module std_queue [system] {
+ header "queue"
+ export *
+ }
+ module std_random [system] {
+ header "random"
+ export *
+ }
+ module std_ranges [system] {
+ header "ranges"
+ export *
+ }
+ module std_ratio [system] {
+ header "ratio"
+ export *
+ }
+ module std_regex [system] {
+ header "regex"
+ export *
+ }
+ module std_scoped_allocator [system] {
+ header "scoped_allocator"
+ export *
+ }
+ module std_semaphore [system] {
+ header "semaphore"
+ export *
+ }
+ module std_set [system] {
+ header "set"
+ export *
+ }
+ module std_shared_mutex [system] {
+ header "shared_mutex"
+ export std_version
+ }
+ module std_source_location [system] {
+ header "source_location"
+ export *
+ }
+ module std_span [system] {
+ header "span"
+ export std_private_ranges_enable_borrowed_range
+ export std_version
+ export std_private_span_span_fwd
+ }
+ module std_sstream [system] {
+ header "sstream"
+ export *
+ }
+ module std_stack [system] {
+ header "stack"
+ export *
+ }
+ module std_stdexcept [system] {
+ header "stdexcept"
+ export *
+ }
+ module std_stop_token {
+ header "stop_token"
+ export *
+ }
+ module std_streambuf [system] {
+ header "streambuf"
+ export *
+ }
+ module std_string [system] {
+ header "string"
+ export *
+ }
+ module std_string_view [system] {
+ header "string_view"
+ export *
+ }
+ module std_strstream [system] {
+ header "strstream"
+ export *
+ }
+ module std_syncstream [system] {
+ header "syncstream"
+ export *
+ }
+ module std_system_error [system] {
+ header "system_error"
+ export *
+ }
+ module std_thread [system] {
+ header "thread"
+ export *
+ }
+ module std_tuple [system] {
+ header "tuple"
+ export *
+ }
+ module std_type_traits [system] {
+ header "type_traits"
+ export *
+ }
+ module std_typeindex [system] {
+ header "typeindex"
+ export *
+ }
+ module std_typeinfo [system] {
+ header "typeinfo"
+ export *
+ }
+ module std_unordered_map [system] {
+ header "unordered_map"
+ export *
+ }
+ module std_unordered_set [system] {
+ header "unordered_set"
+ export *
+ }
+ module std_utility [system] {
+ header "utility"
+ export *
+ }
+ module std_valarray [system] {
+ header "valarray"
+ export *
+ }
+ module std_variant [system] {
+ header "variant"
+ export *
+ }
+ module std_vector [system] {
+ header "vector"
+ export *
+ }
+ module std_version [system] {
+ header "version"
+ export *
+ }
-// C standard library interfaces augmented/replaced in C++
-// <assert.h> provided by C library.
-module std_complex_h [system] {
- header "complex.h"
- export *
-}
-module std_ctype_h [system] {
- header "ctype.h"
- export *
-}
-module std_errno_h [system] {
- header "errno.h"
- export *
-}
-module std_fenv_h [system] {
- header "fenv.h"
- export *
-}
-module std_float_h [system] {
- header "float.h"
- export *
-}
-module std_inttypes_h [system] {
- header "inttypes.h"
- export *
-}
-// <iso646.h> provided by compiler.
-module std_locale_h [system] {
- header "locale.h"
- export *
-}
-module std_math_h [system] {
- header "math.h"
- export *
-}
-// <setjmp.h> provided by C library.
-// <signal.h> provided by C library.
-// FIXME: <stdalign.h> is missing.
-// <stdarg.h> provided by compiler.
-module std_stdatomic_h [system] {
- header "stdatomic.h"
- export *
-}
-module std_stdbool_h [system] {
- // <stdbool.h>'s __bool_true_false_are_defined macro requires textual inclusion.
- textual header "stdbool.h"
- export *
-}
-module std_stddef_h [system] {
- // <stddef.h>'s __need_* macros require textual inclusion.
- textual header "stddef.h"
- export *
-}
-module std_stdint_h [system] {
- header "stdint.h"
- export *
-}
-module std_stdio_h [system] {
- // <stdio.h>'s __need_* macros require textual inclusion.
- textual header "stdio.h"
- export *
-}
-module std_stdlib_h [system] {
- // <stdlib.h>'s __need_* macros require textual inclusion.
- textual header "stdlib.h"
- export *
-}
-module std_string_h [system] {
- header "string.h"
- export *
-}
-module std_tgmath_h [system] {
- header "tgmath.h"
- export *
-}
-module std_uchar_h [system] {
- header "uchar.h"
- export *
-}
-// <time.h> provided by C library.
-module std_wchar_h [system] {
- // <wchar.h>'s __need_* macros require textual inclusion.
- textual header "wchar.h"
- export *
-}
-module std_wctype_h [system] {
- header "wctype.h"
- export *
-}
+ // C standard library interface wrappers
+ module std_cassert [system] {
+ // <cassert>'s use of NDEBUG requires textual inclusion.
+ textual header "cassert"
+ }
+ module std_ccomplex [system] {
+ header "ccomplex"
+ export *
+ }
+ module std_cctype [system] {
+ header "cctype"
+ export *
+ }
+ module std_cerrno [system] {
+ header "cerrno"
+ export *
+ }
+ module std_cfenv [system] {
+ header "cfenv"
+ export *
+ }
+ module std_cfloat [system] {
+ header "cfloat"
+ export *
+ }
+ module std_cinttypes [system] {
+ header "cinttypes"
+ export *
+ }
+ module std_ciso646 [system] {
+ header "ciso646"
+ export *
+ }
+ module std_climits [system] {
+ header "climits"
+ export *
+ }
+ module std_clocale [system] {
+ header "clocale"
+ export *
+ }
+ module std_cmath [system] {
+ header "cmath"
+ export *
+ }
+ module std_csetjmp [system] {
+ header "csetjmp"
+ export *
+ }
+ module std_csignal [system] {
+ header "csignal"
+ export *
+ }
+ // FIXME: <cstdalign> is missing.
+ module std_cstdarg [system] {
+ header "cstdarg"
+ export *
+ }
+ module std_cstdbool [system] {
+ header "cstdbool"
+ export *
+ }
+ module std_cstddef [system] {
+ header "cstddef"
+ export *
+ }
+ module std_cstdint [system] {
+ header "cstdint"
+ export *
+ }
+ module std_cstdio [system] {
+ header "cstdio"
+ export *
+ }
+ module std_cstdlib [system] {
+ header "cstdlib"
+ export *
+ }
+ module std_cstring [system] {
+ header "cstring"
+ export *
+ }
+ module std_ctgmath [system] {
+ header "ctgmath"
+ export *
+ }
+ module std_ctime [system] {
+ header "ctime"
+ export *
+ }
+ module std_cuchar [system] {
+ header "cuchar"
+ export *
+ }
+ module std_cwchar [system] {
+ header "cwchar"
+ export *
+ }
+ module std_cwctype [system] {
+ header "cwctype"
+ export *
+ }
-// Experimental C++ standard library interfaces
-module std_experimental [system] {
- module iterator {
- header "experimental/iterator"
- export *
- }
- module memory {
- header "experimental/memory"
- export *
- }
- module propagate_const {
- header "experimental/propagate_const"
- export *
- }
- module simd {
- module aligned_tag { private header "experimental/__simd/aligned_tag.h" }
- module declaration { private header "experimental/__simd/declaration.h" }
- module reference { private header "experimental/__simd/reference.h" }
- module scalar { private header "experimental/__simd/scalar.h" }
- module simd { private header "experimental/__simd/simd.h" }
- module simd_mask { private header "experimental/__simd/simd_mask.h" }
- module traits { private header "experimental/__simd/traits.h" }
- module utility { private header "experimental/__simd/utility.h" }
- module vec_ext { private header "experimental/__simd/vec_ext.h" }
+ // C standard library interfaces augmented/replaced in C++
+ // <assert.h> provided by C library.
+ module std_complex_h [system] {
+ header "complex.h"
+ export std_ccomplex
+ export *
+ }
+ module std_ctype_h [system] {
+ header "ctype.h"
+ export *
+ }
+ module std_errno_h [system] {
+ header "errno.h"
+ export *
+ }
+ module std_fenv_h [system] {
+ header "fenv.h"
+ export *
+ }
+ module std_float_h [system] {
+ header "float.h"
+ export *
+ }
+ module std_inttypes_h [system] {
+ header "inttypes.h"
+ export *
+ }
+ // <iso646.h> provided by compiler.
+ module std_locale_h [system] {
+ header "locale.h"
+ export *
+ }
+ module std_math_h [system] {
+ header "math.h"
+ export *
+ }
+ // <s...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/87402
More information about the libcxx-commits
mailing list