File tree 7 files changed +43
-5
lines changed
7 files changed +43
-5
lines changed Original file line number Diff line number Diff line change @@ -4933,6 +4933,15 @@ West:
4933
4933
labels :
4934
4934
- " area: Audio"
4935
4935
4936
+ " West project: libstdcxx " :
4937
+ status : maintained
4938
+ maintainers :
4939
+ - Keith Packard
4940
+ files :
4941
+ - modules/Kconfig.libstdc++
4942
+ labels :
4943
+ - " area: C++"
4944
+
4936
4945
" West project: littlefs " :
4937
4946
status : odd fixes
4938
4947
files :
Original file line number Diff line number Diff line change @@ -91,12 +91,29 @@ config MINIMAL_LIBCPP
91
91
config GLIBCXX_LIBCPP
92
92
bool "GNU C++ Standard Library"
93
93
depends on !NATIVE_APPLICATION
94
- depends on NEWLIB_LIBC || PICOLIBC
95
94
select FULL_LIBCPP_SUPPORTED
96
95
help
97
96
Build with GNU C++ Standard Library (libstdc++) provided by the GNU
98
97
Compiler Collection (GCC)-based toolchain.
99
98
99
+ choice GLIBCXX_LIBCPP_SOURCE
100
+ prompt "Source of libstdc++"
101
+ default GLIBCXX_LIBCPP_USE_TOOLCHAIN
102
+
103
+ config GLIBCXX_LIBCPP_USE_MODULE
104
+ bool "libstdc++ from module"
105
+ depends on ZEPHYR_LIBSTDCXX_MODULE
106
+ help
107
+ Use libstdc++ module instead of libstdc++ included with toolchain.
108
+
109
+ config GLIBCXX_LIBCPP_USE_TOOLCHAIN
110
+ bool "libstdc++ from toolchain"
111
+ depends on NEWLIB_LIBC || PICOLIBC_USE_TOOLCHAIN
112
+ help
113
+ Use libstdc++ module instead of libstdc++ included with toolchain.
114
+
115
+ endchoice
116
+
100
117
config LIBCXX_LIBCPP
101
118
bool "LLVM C++ Standard Library"
102
119
depends on !NATIVE_APPLICATION
Original file line number Diff line number Diff line change @@ -45,7 +45,7 @@ config NEWLIB_LIBC_SUPPORTED
45
45
config PICOLIBC_SUPPORTED
46
46
bool
47
47
depends on !NATIVE_APPLICATION
48
- depends on ("$(TOOLCHAIN_HAS_PICOLIBC)" = "y") || ( ZEPHYR_PICOLIBC_MODULE && !REQUIRES_FULL_LIBCPP)
48
+ depends on ("$(TOOLCHAIN_HAS_PICOLIBC)" = "y") || ZEPHYR_PICOLIBC_MODULE
49
49
default y
50
50
select FULL_LIBC_SUPPORTED
51
51
help
@@ -87,6 +87,7 @@ config PICOLIBC
87
87
select NEED_LIBC_MEM_PARTITION
88
88
select TC_PROVIDES_POSIX_C_LANG_SUPPORT_R
89
89
imply COMMON_LIBC_MALLOC
90
+ select COMMON_LIBC_MALLOC if REQUIRES_FULL_LIBCPP
90
91
depends on PICOLIBC_SUPPORTED
91
92
help
92
93
Build with picolibc library. The picolibc library is built as
Original file line number Diff line number Diff line change @@ -5,13 +5,12 @@ if PICOLIBC
5
5
6
6
choice PICOLIBC_SOURCE
7
7
prompt "Source of Picolibc"
8
- default PICOLIBC_USE_TOOLCHAIN if REQUIRES_FULL_LIBCPP || "$(TOOLCHAIN_HAS_PICOLIBC)" = "y"
8
+ default PICOLIBC_USE_TOOLCHAIN if "$(TOOLCHAIN_HAS_PICOLIBC)" = "y"
9
9
default PICOLIBC_USE_MODULE
10
10
11
11
config PICOLIBC_USE_MODULE
12
12
bool "Picolibc from module"
13
13
depends on ZEPHYR_PICOLIBC_MODULE
14
- depends on !GLIBCXX_LIBCPP
15
14
help
16
15
Use picolibc module instead of picolibc included with toolchain.
17
16
This is enabled by default for toolchains other than the Zephyr
@@ -24,7 +23,6 @@ config PICOLIBC_USE_TOOLCHAIN
24
23
select THREAD_LOCAL_STORAGE if ARCH_HAS_THREAD_LOCAL_STORAGE && TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE
25
24
help
26
25
Use picolibc included with the toolchain.
27
- This is required when using a full C++ standard library (`REQUIRES_FULL_LIBCPP=y`).
28
26
29
27
endchoice # PICOLIBC_SOURCE
30
28
Original file line number Diff line number Diff line change @@ -44,6 +44,7 @@ source "modules/zcbor/Kconfig"
44
44
source "modules/Kconfig.mcuboot"
45
45
source "modules/Kconfig.intel"
46
46
source "modules/hostap/Kconfig"
47
+ source "modules/Kconfig.libstdc++"
47
48
48
49
comment "Unavailable modules, please install those via the project manifest."
49
50
Original file line number Diff line number Diff line change
1
+ # Copyright 2024 Google LLC
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ config ZEPHYR_LIBSTDCXX_MODULE
5
+ bool
Original file line number Diff line number Diff line change @@ -23,6 +23,8 @@ manifest:
23
23
url-base : https://github.com/zephyrproject-rtos
24
24
- name : babblesim
25
25
url-base : https://github.com/BabbleSim
26
+ - name : keithp
27
+ url-base : https://github.com/keith-packard
26
28
27
29
group-filter : [-babblesim, -optional]
28
30
@@ -268,6 +270,11 @@ manifest:
268
270
- name : liblc3
269
271
revision : 1a5938ebaca4f13fe79ce074f5dee079783aa29f
270
272
path : modules/lib/liblc3
273
+ - name : libstdcxx
274
+ remote : keithp
275
+ repo-path : libstdcxx-module
276
+ revision : 8b94ca21ebc054259d8229c47e96b40e44a42baa
277
+ path : modules/lib/libstdcxx
271
278
- name : littlefs
272
279
path : modules/fs/littlefs
273
280
groups :
You can’t perform that action at this time.
0 commit comments