{"id":2219531,"url":"http://patchwork.ozlabs.org/api/patches/2219531/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/20260403093956.118365-1-ibuclaw@gdcproject.org/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260403093956.118365-1-ibuclaw@gdcproject.org>","list_archive_url":null,"date":"2026-04-03T09:39:56","name":"libphobos: Skip math.hardware unittests on targets without IEEE flags support","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"65f1f60a70dd5e66bbb33f7a7764002e54c5d374","submitter":{"id":46728,"url":"http://patchwork.ozlabs.org/api/people/46728/?format=json","name":"Iain Buclaw","email":"ibuclaw@gdcproject.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/20260403093956.118365-1-ibuclaw@gdcproject.org/mbox/","series":[{"id":498610,"url":"http://patchwork.ozlabs.org/api/series/498610/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=498610","date":"2026-04-03T09:39:56","name":"libphobos: Skip math.hardware unittests on targets without IEEE flags support","version":1,"mbox":"http://patchwork.ozlabs.org/series/498610/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2219531/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2219531/checks/","tags":{},"related":[],"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gdcproject.org header.i=@gdcproject.org\n header.a=rsa-sha256 header.s=MBO0001 header.b=euFCu3e+;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=gdcproject.org header.i=@gdcproject.org\n header.a=rsa-sha256 header.s=MBO0001 header.b=euFCu3e+","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=gdcproject.org","sourceware.org; spf=pass smtp.mailfrom=gdcproject.org","server2.sourceware.org;\n arc=none smtp.remote-ip=80.241.56.151","outgoing_mbo_mout; dkim=none;\n spf=pass (outgoing_mbo_mout: domain of ibuclaw@gdcproject.org designates\n 2001:67c:2050:b231:465::202 as permitted sender)\n smtp.mailfrom=ibuclaw@gdcproject.org"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fnDHM4Cftz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 03 Apr 2026 20:40:47 +1100 (AEDT)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 860E64BA23DA\n\tfor <incoming@patchwork.ozlabs.org>; Fri,  3 Apr 2026 09:40:45 +0000 (GMT)","from mout-p-101.mailbox.org (mout-p-101.mailbox.org [80.241.56.151])\n by sourceware.org (Postfix) with ESMTPS id CE38D4BA2E32\n for <gcc-patches@gcc.gnu.org>; Fri,  3 Apr 2026 09:40:18 +0000 (GMT)","from smtp202.mailbox.org (smtp202.mailbox.org\n [IPv6:2001:67c:2050:b231:465::202])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4fnDGl5CQzz9tZk;\n Fri,  3 Apr 2026 11:40:15 +0200 (CEST)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 860E64BA23DA","OpenDKIM Filter v2.11.0 sourceware.org CE38D4BA2E32"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org CE38D4BA2E32","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org CE38D4BA2E32","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775209219; cv=none;\n b=lQKbxGRq2WgXjBEdIlJnwbu5T79ch/lsR5oapY8jaoAGVAejmo9SX2Oa4Urxly/q1guF08KHOO5tJ1BUAEu7Y85VnRFS8yLmukvmh1mZx/lJC1Mme5crb5XyxpI61byVQL5557sakp4dCmMyOmSHJwnJIXbpnPBHkm6DYWddbeE=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775209219; c=relaxed/simple;\n bh=yJD8w5B3lPp0vJvqOAClxDBmzvvuu/Nw4zgiFGtcob8=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=r8wgiS51sZ1W5wqU+lIWSnlrrLzJGdvN72SwaBUHWtxwonpOXJ8c35PXLdYzYVqd5vQQ7uuIGFt4Cr3WdyiI+BaN7SwFqb110phwzLCFDViNvzAtOoy02AkeA/+wxZqtBDOxzYNb/nbd4MNlVGMwCGdTPnakSQGGUlP309ChUCs=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gdcproject.org;\n s=MBO0001; t=1775209215;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding;\n bh=aM987LeiaIz7pJF6Qr4FRUwetq9Ekk3bItEmY9KDNo4=;\n b=euFCu3e+JlKLL/3phPWmsmle1D7HT5fcCbAMtvLfRvBA/Mq8HQe2GUnG3Hn8oGNsMxi/W2\n grL35h2B6ftj3bK2ZQtRrrvvDDZpmJcS69K20gnPsnFTZwll+GsZTiRU+gbjBlUgRHsTcn\n jZN1zQaJswBpi/0DeAfxPfXQJ41daqJJ8kFMGigQ6ykUmtTbN6EvUqBtwmdxkvkZ9J4fJz\n 70oyyUmCFxZ6r423yaeUqJlk52YHXXkV0LI4NZjvD6GGJJSjymT9AZ3JLu9ll1peVUVdre\n ezA9kyZJAGtGTPSce1HzrJbDMAqQb2JGJJCNJY5h08LScFm5xhvrg/JhzDfoUw==","From":"Iain Buclaw <ibuclaw@gdcproject.org>","To":"gcc-patches@gcc.gnu.org","Cc":"ro@CeBiTec.Uni-Bielefeld.DE,\n\tIain Buclaw <ibuclaw@gdcproject.org>","Subject":"[PATCH] libphobos: Skip math.hardware unittests on targets without\n IEEE flags support","Date":"Fri,  3 Apr 2026 11:39:56 +0200","Message-ID":"<20260403093956.118365-1-ibuclaw@gdcproject.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Rspamd-Queue-Id":"4fnDGl5CQzz9tZk","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"Hi,\n\nThis patch adds a new effective-target proc phobos_ieee_flags_support to\nthe libphobos testsuite, and uses it where required.\n\nTested on x86_64-linux-gnu.\n\nOK?\n\nRegards,\nIain.\n\n---\n\tPR d/123202\n\nlibphobos/ChangeLog:\n\n\t* testsuite/lib/libphobos.exp\n\t(check_effective_target_phobos_ieee_flags_support): New proc.\n\t* testsuite/libphobos.phobos/phobos.exp: Skip math/hardware.d tests if\n\ttarget does not have phobos_iee_flags_support.\n\t* testsuite/libphobos.phobos/shared/phobos-shared.exp: Likewise.\n\t* testsuite/libphobos.phobos/static/phobos-static.exp: Likewise.\n---\n libphobos/testsuite/lib/libphobos.exp         | 22 +++++++++++++++++++\n .../testsuite/libphobos.phobos/phobos.exp     |  2 ++\n .../libphobos.phobos/shared/phobos-shared.exp |  2 ++\n .../libphobos.phobos/static/phobos-static.exp |  2 ++\n 4 files changed, 28 insertions(+)","diff":"diff --git a/libphobos/testsuite/lib/libphobos.exp b/libphobos/testsuite/lib/libphobos.exp\nindex 18804befe5d..a5c2b0588b5 100644\n--- a/libphobos/testsuite/lib/libphobos.exp\n+++ b/libphobos/testsuite/lib/libphobos.exp\n@@ -364,3 +364,25 @@ proc check_effective_target_linux_pre_2639 { } {\n     }\n     return 1\n }\n+\n+# Return true if target support for manipulating IEEE floating flags\n+# exists in the std.math.hardware module.\n+proc check_effective_target_phobos_ieee_flags_support { } {\n+    if { ![check_effective_target_hard_float] } {\n+\treturn 0\n+    }\n+    # These targets set `version = IeeeFlagsSupport'\n+    if { [istarget i?86*-*-*]\n+\t || [istarget x86_64*-*-*]\n+\t || [istarget aarch64*-*-*]\n+\t || [istarget arm*-*-*]\n+\t || [istarget loongarch64*-*-*]\n+\t || [istarget mips*-*-*]\n+\t || [istarget powerpc*-*-*]\n+\t || [istarget riscv*-*-*]\n+\t || [istarget sparc*-*-*] } {\n+\treturn 1\n+    } else {\n+        return 0\n+    }\n+}\ndiff --git a/libphobos/testsuite/libphobos.phobos/phobos.exp b/libphobos/testsuite/libphobos.phobos/phobos.exp\nindex 3bd80e98181..17c60156bbd 100644\n--- a/libphobos/testsuite/libphobos.phobos/phobos.exp\n+++ b/libphobos/testsuite/libphobos.phobos/phobos.exp\n@@ -36,6 +36,8 @@ if { [is-effective-target linux_pre_2639] } {\n set libphobos_skip_tests {\n     # Skip concurrency.d test: SEGVs or hangs on macOS 13+ (PR d/111628).\n     { libphobos.phobos/std_concurrency.d { x86_64-apple-darwin2[2-9]* } }\n+    # Skip math/hardware.d if missing necessary support (PR d/123202).\n+    { libphobos.phobos/std_math_hardware.d { ! phobos_ieee_flags_support } }\n }\n \n # Initialize dg.\ndiff --git a/libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp b/libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp\nindex c95cb86d162..39399125111 100644\n--- a/libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp\n+++ b/libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp\n@@ -44,6 +44,8 @@ set libphobos_skip_tests {\n     { libphobos.phobos/shared/std/net/curl.d { ! libcurl_available } }\n     # Skip concurrency.d test: SEGVs or hangs on macOS 13+ (PR d/111628).\n     { libphobos.phobos/shared/std/concurrency.d { x86_64-apple-darwin2[2-9]* } }\n+    # Skip math/hardware.d if missing necessary support (PR d/123202).\n+    { libphobos.phobos/shared/std/math/hardware.d { ! phobos_ieee_flags_support } }\n }\n \n # Initialize dg.\ndiff --git a/libphobos/testsuite/libphobos.phobos/static/phobos-static.exp b/libphobos/testsuite/libphobos.phobos/static/phobos-static.exp\nindex bf09a38ad70..e8d745ce25c 100644\n--- a/libphobos/testsuite/libphobos.phobos/static/phobos-static.exp\n+++ b/libphobos/testsuite/libphobos.phobos/static/phobos-static.exp\n@@ -44,6 +44,8 @@ set libphobos_skip_tests {\n     { libphobos.phobos/static/std/net/curl.d { ! libcurl_available } }\n     # Skip concurrency.d test: SEGVs or hangs on macOS 13+ (PR d/111628).\n     { libphobos.phobos/static/std/concurrency.d { x86_64-apple-darwin2[2-9]* } }\n+    # Skip math/hardware.d if missing necessary support (PR d/123202).\n+    { libphobos.phobos/static/std/math/hardware.d { ! phobos_ieee_flags_support } }\n }\n \n # Initialize dg.\n","prefixes":[]}