From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on starla X-Spam-Level: X-Spam-Status: No, score=-1.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 Received: from nue.mailmanlists.eu (nue.mailmanlists.eu [94.130.110.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 2A89B1F508 for ; Fri, 24 Jan 2025 15:05:54 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (1024-bit key; unprotected) header.d=ml.ruby-lang.org header.i=@ml.ruby-lang.org header.a=rsa-sha256 header.s=mail header.b=mSCz5u4d; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=BmEWswR6; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ml.ruby-lang.org; s=mail; t=1737731152; bh=s5rfqZH0RPXp1C+HjAUdnLozLEiHa+oHbiR5Q1wCAhs=; h=Date:References:To:Reply-To:Subject:List-Id:List-Archive: List-Help:List-Owner:List-Post:List-Subscribe:List-Unsubscribe: From:Cc:From; b=mSCz5u4d3bOJuO6aKbfeK/Ki948ZdnFn1+vL5e3WjqBfJg9JQu4tAyRmPSjMRCGgI 7j0Xvh3cGNmysuUgbCsI0TTO9u/SXmjpOV361EOH7l36CHrKhWZd5FTYxlpJeshEH9 oZHf/2SadlDCjPHSmCvQ2j4rdb82NVoMW8weqskQ= Received: from nue.mailmanlists.eu (localhost [IPv6:::1]) by nue.mailmanlists.eu (Postfix) with ESMTP id 312DC46873 for ; Fri, 24 Jan 2025 15:05:52 +0000 (UTC) Authentication-Results: nue.mailmanlists.eu; dkim=pass (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=BmEWswR6; dkim-atps=neutral Received: from s.wrqvwxzv.outbound-mail.sendgrid.net (s.wrqvwxzv.outbound-mail.sendgrid.net [149.72.154.232]) by nue.mailmanlists.eu (Postfix) with ESMTPS id 40AC446860 for ; Fri, 24 Jan 2025 15:05:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ruby-lang.org; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc:content-type:from:subject:to; s=s1; bh=I5wIuUNrXIdIWkD1eXjj5M28Q/4wIZ22lSosH20tfBI=; b=BmEWswR6qHmoN5KN6S5TkREYSb2MUfY3hC0ujZuvKE/3ioIY/orpiLAvtX5KtUtcdsNC oEeSlCNVzAZ+Vt76zXP8Q3oQBhYIs3bV3gF2Hpa07HCMMBy6wXFHNfZFzwQOECrIB7JsRj f8Z7wq9mm97vjha+ojeKfFROfkQeAvLqg0APKzpDdO7iXb9tpi9SRUsdZ3LQCfAEP5oqH5 smSUab95I6imk7UdqVhvWJmcxSeLUKj1ahc0xivrVJV9YQV4927QZ4dJkl7iWG6b7I0pC6 R66rRbeHq3fEuKVaHks4Bgu9eU0ISmbBLZcpNE+eK+MIgaCzrPah4NurBE7wKigA== Received: by recvd-canary-6f99844b68-hj7fp with SMTP id recvd-canary-6f99844b68-hj7fp-1-6793AC49-2D 2025-01-24 15:05:45.672392913 +0000 UTC m=+6120040.991554242 Received: from herokuapp.com (unknown) by geopod-ismtpd-16 (SG) with ESMTP id tWOgVXiaTy6Z-c-BG00T7g for ; Fri, 24 Jan 2025 15:05:45.614 +0000 (UTC) Date: Fri, 24 Jan 2025 15:05:45 +0000 (UTC) Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Bug X-Redmine-Issue-Id: 21024 X-Redmine-Issue-Author: jprokop X-Redmine-Issue-Priority: Normal X-Redmine-Sender: nobu X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 97503 X-SG-EID: =?us-ascii?Q?u001=2E5PtzXJ23KrYzgM1nrOIr+EQ222PyrDaWSg0Er8CZ8tP86xyXmBM81zBKD?= =?us-ascii?Q?HreavdFYMbHjxXOR6UPMkt=2Fu9CyBIp6y52n8D2y?= =?us-ascii?Q?qA9zqurrgUfzkqHJn=2FDuTfZnTuqPHbrbj5BzZD7?= =?us-ascii?Q?34Q2ycv7Da4L9rRBOmV+GBK+qjpG5HMsIJKqXDc?= =?us-ascii?Q?L8dcwICjzP=2FzMN44MUlK+rogh4zD5TsV+vT4j19?= =?us-ascii?Q?nk71da54HjPE33s6R4YN2o6riT5yFVFAIhiSl+U?= =?us-ascii?Q?mAF=2FKi4rKZOpP2GQUjJB+5uS0Q=3D=3D?= To: ruby-core@ml.ruby-lang.org X-Entity-ID: u001.I8uzylDtAfgbeCOeLBYDww== Message-ID-Hash: DKOCJNIUEAHT7XDG7P6AG7XBGN6EMQJV X-Message-ID-Hash: DKOCJNIUEAHT7XDG7P6AG7XBGN6EMQJV X-MailFrom: bounces+313651-b711-ruby-core=ml.ruby-lang.org@em5188.ruby-lang.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.9 Precedence: list Reply-To: Ruby developers Subject: [ruby-core:120785] [Ruby master Bug#21024] Ruby including generates compilation warning with GCC 15, header is deprecated in C++17, List-Id: Ruby developers Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: "nobu (Nobuyoshi Nakada) via ruby-core" Cc: "nobu (Nobuyoshi Nakada)" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Issue #21024 has been updated by nobu (Nobuyoshi Nakada). Marked backport to 3.4: required. ---------------------------------------- Bug #21024: Ruby including generates compilation warning with GCC 15, header is deprecated in C++17, https://bugs.ruby-lang.org/issues/21024#change-111654 * Author: jprokop (Jarek Prokop) * Status: Closed * ruby -v: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-linux] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: REQUIRED ---------------------------------------- C++ compiler in GCC 15 now generates a warning when trying to include ``. This file is being included when compiling with C++ compiler from `include/ruby/internal/stdbool.h`. In C++, true, false and bool are keywords so including headers for boolean definitions should not be necessary. Alternatively, just including should be sufficient as that is what the `#include ` results in with GCC. Simplest fix is just deleting the lines that are including the file (see attached patch and comments 2 and 3 from downstream issue linked in the bottom section "Additional info"). Considering the wide array of compilers Ruby aims to support to be compiled with I wanted to make an issue here first to make sure there isn't a supported compiler that wouldn't agree with this approach. Reproduction: Obtain GCC 15, for Fedora Rawhide there is currently a repo of maintainer, I use it in Fedora Rawhide container (podman is replaceable for docker here): ``` host$ podman run -it --rm registry.fedoraproject.org/fedora:rawhide bash container# echo "[gcc_15] name=pre-release GCC 15 Repo baseurl=https://fedorapeople.org/~dmalcolm/gcc/gcc-15-mass-prebuild/$basearch type=rpm-md skip_if_unavailable=True gpgcheck=0 repo_gpgcheck=0 enabled=1 enabled_metadata=1" > /etc/yum.repos.d/gcc_15.repo container# dnf install --assumeyes g++ ruby-devel ``` ^ should install `g++-15.0.0` and `ruby.h` needed for the reproducer. Note: that baseurl is a custom space of a Fedora maintainer. Have a file named for example `main.cpp`: ``` cpp #include int main(void) { return 0; } ``` Compile with GCC 15 ``` $ g++ main.cpp ``` Current behavior: Compiling throws warning: ``` $ g++ main.cpp In file included from /usr/include/ruby/internal/stdbool.h:30, from /usr/include/ruby/backward/2/bool.h:22, from /usr/include/ruby/defines.h:74, from /usr/include/ruby/ruby.h:25, from /usr/include/ruby.h:38, from reproducer.cpp:1: /usr/include/c++/15/cstdbool:48:6: warning: #warning " is deprecated in C++17, remove the #include" [-Wcpp] 48 | # warning " is deprecated in C++17, remove the #include" | ^~~~~~~ ``` Expected: Compilation throws no warnings and compiles the executable: ``` $ g++ reproducer.cpp $ echo $? 0 ``` Additional info: ``` $ g++ --version g++ (GCC) 15.0.0 20241203 (Red Hat 15.0.0-0) Copyright (C) 2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ``` This was met during recompilation of libdnf5 that includes `-Werror` in their compilation flags, See downstream discussion: https://bugzilla.redhat.com/show_bug.cgi?id=2336567 Considering the inclusion of the throws me up to 5 years ago back ( https://github.com/ruby/ruby/blob/9e6e39c3512f7a962c44dc3729c98a0f8be90341/include/ruby/3/stdbool.h ), I assume this warning will be the case with older rubies as well as newest master when using GCC 15. ---Files-------------------------------- 0001-Stop-including-cstdbool-in-include-ruby-internal-std.patch (869 Bytes) -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/