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]>


Reply via email to