From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EA1E1E9A049 for ; Wed, 18 Feb 2026 21:34:56 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vspC1-0006Td-ND; Wed, 18 Feb 2026 16:34:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vspBy-0006Ss-Tc for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:34:42 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vspBw-0001w0-Qr for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:34:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1771450479; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Oz5Ts3Qyazr1Fg/apL0t/XQrjQkc6Mu38D7gvg35lFc=; b=Le+vjvxPW2Ro3qOZND+6gVoFJSRUJK5y2K45pHvPS7jk0JLLMfCpC/ZecZXEWP5AoYWhgo 0qX9mcy0oR0JROFAytixjZLnbDDgzv3HQ6yEXlAhq60HYW3/qa8lq3QUj78tcWFRIV/WfY X0lWZDZELn36PELDaPCHYId0EsxEQ0o= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-658-J3MBiRsNPCW0yjTI1C4r6Q-1; Wed, 18 Feb 2026 16:34:36 -0500 X-MC-Unique: J3MBiRsNPCW0yjTI1C4r6Q-1 X-Mimecast-MFC-AGG-ID: J3MBiRsNPCW0yjTI1C4r6Q_1771450474 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E07841955D89; Wed, 18 Feb 2026 21:34:33 +0000 (UTC) Received: from jsnow-thinkpadp16vgen1.westford.csb (unknown [10.22.65.233]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id A1E3A19560B5; Wed, 18 Feb 2026 21:34:26 +0000 (UTC) From: John Snow To: qemu-devel@nongnu.org Cc: Kevin Wolf , Warner Losh , Mauro Carvalho Chehab , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , qemu-block@nongnu.org, =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Fabiano Rosas , John Snow , Michael Roth , Pierrick Bouvier , Markus Armbruster , Peter Xu , Yonggang Luo , Hanna Reitz , Maksim Davydov , Thomas Huth , Ed Maste , Alexandre Iooss , Cleber Rosa , Li-Wen Hsu , Mahmoud Mandour , Kyle Evans , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Vladimir Sementsov-Ogievskiy Subject: [PATCH v8 01/20] [do-not-merge] contrib/plugins/cpp: use __has_include Date: Wed, 18 Feb 2026 16:33:56 -0500 Message-ID: <20260218213416.674483-2-jsnow@redhat.com> In-Reply-To: <20260218213416.674483-1-jsnow@redhat.com> References: <20260218213416.674483-1-jsnow@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass client-ip=170.10.133.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.043, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Pierrick Bouvier (Included for the sake of proving this series does not cause any VM building regressions; this patch has been submitted separately upstream by pbo; this series does not otherwise depend on that patch. --js) This make sure we can include all possible headers without breaking build for environments missing them. It fixes compilation on openbsd. We don't want to pollute configure script, as it's really a special case here to make sure we don't have a compilation regression with qemu-plugins header. Signed-off-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: John Snow --- contrib/plugins/cpp.cpp | 261 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 259 insertions(+), 2 deletions(-) diff --git a/contrib/plugins/cpp.cpp b/contrib/plugins/cpp.cpp index 1ff54896d97..0673c4f074d 100644 --- a/contrib/plugins/cpp.cpp +++ b/contrib/plugins/cpp.cpp @@ -6,103 +6,360 @@ #include -/* https://en.cppreference.com/w/cpp/headers.html */ +/* + * We include all C++ standard headers (without deprecated ones), + * taken from: https://en.cppreference.com/w/cpp/headers.html + * + * To update, copy page text, and then: + * grep '^<' | + * sort -u | + * grep -v strstream | + * grep -v codecvt | + * sed -e 's/\(.*\)/#if __has_include(\1)\n#include \1\n#endif/' + */ + +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include -#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() +#include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() +#include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() +#include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif +#if __has_include() #include +#endif QEMU_PLUGIN_EXPORT int qemu_plugin_version = QEMU_PLUGIN_VERSION; -- 2.53.0