On 3/4/26 9:27 PM, Akihiko Odaki wrote:
On 2026/03/05 3:03, Pierrick Bouvier wrote:
On 3/3/26 11:59 PM, Akihiko Odaki wrote:
GCC 15.2.1 requires it:
[67/6111] Compiling C++ object contrib/plugins/libcpp.so.p/cpp.cpp.o
FAILED: contrib/plugins/libcpp.so.p/cpp.cpp.o
c++ -Icontrib/plugins/libcpp.so.p -Icontrib/plugins -I../contrib/
plugins -I../include/plugins -I/usr/include/glib-2.0 -I/usr/lib64/
glib-2.0/include -I/usr/include/sysprof-6 -fdiagnostics-color=auto -
D_GLIBCXX_ASSERTIONS=1 -Wall -Winvalid-pch -Werror -O2 -g -
D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-
aliasing -fno-common -fwrapv -ftrivial-auto-var-init=zero -fzero-call-
used-regs=used-gpr -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -
D__STDC_FORMAT_MACROS -fsanitize=address -fstack-protector-strong -
fsanitize=undefined -Wempty-body -Wendif-labels -Wexpansion-to-defined
-Wformat-security -Wformat-y2k -Wignored-qualifiers -Wimplicit-
fallthrough=2 -Winit-self -Wmissing-format-attribute -Wredundant-decls
-Wshadow=local -Wtype-limits -Wundef -Wvla -Wwrite-strings -Wno-
missing-include-dirs -Wno-psabi -Wno-shift-negative-value -isystem /
home/me/q/var/qemu/linux-headers -isystem linux-headers -iquote . -
iquote /home/me/q/var/qemu -iquote /home/me/q/var/qemu/!
include -iquote /home/me/q/var/qemu/host/include/aarch64 -iquote /
home/me/q/var/qemu/host/include/generic -iquote /home/me/q/var/qemu/
tcg/aarch64 -pthread -fPIC -MD -MQ contrib/plugins/libcpp.so.p/
cpp.cpp.o -MF contrib/plugins/libcpp.so.p/cpp.cpp.o.d -o contrib/
plugins/libcpp.so.p/cpp.cpp.o -c ../contrib/plugins/cpp.cpp
In file included from ../contrib/plugins/cpp.cpp:91:
/usr/include/c++/15/coroutine:43:3: error: #error "the <coroutine>
header requires -fcoroutines"
43 | # error "the <coroutine> header requires -fcoroutines"
| ^~~~~
Signed-off-by: Akihiko Odaki <[email protected]>
---
contrib/plugins/meson.build | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/contrib/plugins/meson.build b/contrib/plugins/meson.build
index 099319e7a173..caa0fca17245 100644
--- a/contrib/plugins/meson.build
+++ b/contrib/plugins/meson.build
@@ -26,8 +26,14 @@ endif
t = []
if get_option('plugins')
foreach i : contrib_plugins
+ if i == 'cpp.cpp' and cxx.has_argument('-fcoroutines')
+ cpp_args = ['-fcoroutines']
+ else
+ cpp_args = []
+ endif
+
t += shared_module(fs.stem(i), files(i),
- dependencies: plugins_deps)
+ cpp_args: cpp_args, dependencies: plugins_deps)
endforeach
endif
if t.length() > 0
---
base-commit: afe653676dc6dfd49f0390239ff90b2f0052c2b8
change-id: 20260304-cpp-ddc219374e4f
Best regards,
--
Akihiko Odaki <[email protected]>
Hi Akihiko,
it seems like you ran into this issue:
https://lore.kernel.org/qemu-devel/[email protected]/
You can just clean your build folder and restart from scratch.
See the thread above, it's a limitation of meson (by design) not
updating language standard.
The best fix on our side would be to add -std=... directly in c/cxx
flags instead of relying on default options.
I withdraw this patch. Passing -fcoroutines is not a right approach when
the default option configures the project to use a newer C++ standard.
I hope Meson and QEMU figure out a solution that improves the user
experience.
Thank you for point out the thread.
Sorry for the bad experience on your side, and I hope too meson will end
up fixing this, even though the open issues are not very encouraging.
Regards,
Akihiko Odaki