From patchwork Fri Jul 11 11:13:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Radek Barton X-Patchwork-Id: 116107 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D52CE384E7A6 for ; Fri, 11 Jul 2025 11:23:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D52CE384E7A6 Authentication-Results: sourceware.org; dkim=fail reason="signature verification failed" (1024-bit key, unprotected) header.d=microsoft.com header.i=@microsoft.com header.a=rsa-sha256 header.s=selector2 header.b=bV5YRxgq X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2137.outbound.protection.outlook.com [40.107.21.137]) by sourceware.org (Postfix) with ESMTPS id E484038693ED for ; Fri, 11 Jul 2025 11:13:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E484038693ED Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=microsoft.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=microsoft.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E484038693ED Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.21.137 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1752232440; cv=pass; b=QJfxwqDaEEsPvoqYsrXz5iqqVrV17w/M1NXLeSgPrLrBiAujmcdDM89jnfsGvupKTUGSRoTmDPA0RWmnxi50FvMKqJng24F0mAIkevyMSmD5dXKZuVlJiSEi+K2ZxkGQ39EmIgoXzxIpkz9QuOw0CkJpyp0stJeMvT+c5kVGMWk= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1752232440; c=relaxed/simple; bh=hTridBPEIMmTO+7APwHf1VGMmTIoX3Dk4JvaI6CyYCQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Py/aleCiBr5HsoJPblc6ri/v8oy3QN85tpkBbKPnhsw3+AW/2WGnU2oyI24CbuWD/ZIGGMxtFjhS71nZJDKkLe+MZ46ZCgtuSuCwT+IHlgMqdl5lzezfmVFODEEyPaPsIk2N1ahK6id5cZNKV24wtgGYQXzsvyOnarX9nWPSBUE= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E484038693ED ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CXlg/8AuP41Acx20gmJLBfC4G3eZm5E83OHob6KNyvriAdTmIrUSpiYffHFFJJI9ZiNWeMmecFkguqaz0V/vH75swbQDXLCTsvIsLsKS0Q6N7FzPCFLAexKs9arlpEcb6ThHzit5RKCns7+aGy3t7G7jAgD/o4Rljf8iwCSx+6Ra9NZN91nxBHnRZ+K+W0LuFimdhtxhlnb2pCqVOj3ltKhiyR0Op6ZjYP6R1DfuWAk4VCHPh+FxjFlmZEM6fpqZRm/fNNcAxiWH/pupLvQEq++rxJI+iGMrS9XWP6JSwG6OjPJRgwAQzWsh8Me0d0g9dOlX+v5kFYRvLh3cKtwuKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=v7F1xVc+F/yPADKR41z6jAnF+Zqtfm3CVS+WlNboIBA=; b=dEPuPjtidGCDv0nXEirK4/VTZe/et4pdzXBt+yZaSGwZzLdEsi/NEecTujHsOGQgyo6V42s6V7zc2hY6X4g6IeDD0YK7gXcHh+8LBNTLJXjbnko6VXckUv/lNy4hj+FgnX7ppS18ebVRLC85hlDCRfiUhJDf4ENvq+JigZDbQQiO40uD0FfoUHkYqL+R2E5l5psn7Ybarj4KwMK6iUueWbYESiA1WoYDUyIsPaw3ROtXOU9HIr/pVtzely9s0wRrWxwmhGdaySDTp/t1v/lTom3fGwnvzPvrc4RWJ5e8w1iNG2371sDHaHKEiRq8ZZXre3VVOGh6Ok5MrKSpVr/TuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v7F1xVc+F/yPADKR41z6jAnF+Zqtfm3CVS+WlNboIBA=; b=bV5YRxgqyEP4l4j42oFsdGM7PmTx9SjAKYVf+9IsQ5FhmvOgSM8hievUBMVtxtdQnKGZjfFpHPrvGP/AknBbdQtsTMqomSOzI++uIouAEvdXMhDyJjYlKdrPz2K5pv9ePjQnxLwXBAoNUyZjwqWVtkHR5ZDoBMTRk0qYWkgv02Y= Received: from DB9PR83MB0923.EURPRD83.prod.outlook.com (2603:10a6:10:5ca::18) by PA2PR83MB0684.EURPRD83.prod.outlook.com (2603:10a6:102:414::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.20; Fri, 11 Jul 2025 11:13:55 +0000 Received: from DB9PR83MB0923.EURPRD83.prod.outlook.com ([fe80::4407:2fff:68f4:1eea]) by DB9PR83MB0923.EURPRD83.prod.outlook.com ([fe80::4407:2fff:68f4:1eea%4]) with mapi id 15.20.8922.023; Fri, 11 Jul 2025 11:13:54 +0000 From: Radek Barton To: Newlib Subject: [QUESTION/PATCH] How to deal with 64bit long double on aarch64-w64-mingw32 and aarch64-pc-cygwin? Thread-Topic: [QUESTION/PATCH] How to deal with 64bit long double on aarch64-w64-mingw32 and aarch64-pc-cygwin? Thread-Index: AQHb8lNvmi4JgslqVUWS4eT+ca+hdw== Date: Fri, 11 Jul 2025 11:13:54 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2025-07-11T11:13:53.485Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DB9PR83MB0923:EE_|PA2PR83MB0684:EE_ x-ms-office365-filtering-correlation-id: 29730e5d-1f43-4157-1f87-08ddc06c05c7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|4053099003|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?8lPes00W9iYIY5RCvn0D0KSv5G?= =?iso-8859-1?q?MkjfBicmVens5eFU7cW0lM4+p3uDWoVulFr4t1S7cEKhhtEidvr4jZbt/TnY?= =?iso-8859-1?q?fmrtQC4OwT13V04myLbMqPU9lcHz0rPn26caq1c6vNqSp9PGv25cimv/P3De?= =?iso-8859-1?q?pnFerU/DzUdJPVuNjsPOWedvZXwxD6gzsGYyHr5oR/GSHk9PCo+UCu9suBCb?= =?iso-8859-1?q?3VsaiKg9lmFaA0OSBOUhcL/7nPAbF+CTQQYLC5dm2LvrRKNS+IW+ALly+y4h?= =?iso-8859-1?q?Mm0oMR85UL0rpF9ZYJS0bpPoNnnxpD2FdpNwlDQKZs66HlJxhzURInEiKweF?= =?iso-8859-1?q?FjNZaQXtwPU4qTUhcOb2srBC0ss4O+n+NqcjSs0BkxOJE9rAvPTFF85fS2Ye?= =?iso-8859-1?q?tDFzkh0119HXc6l1yAI0xP4sDu8/2eRjLaI+NsZmrnISf4LYrrQ4HtobtWJJ?= =?iso-8859-1?q?EagmpB4BUZJGmHkvaA/CLWb0yKF5fyaB3LH2W2F3PMnao8XVo6ycy15dGNEb?= =?iso-8859-1?q?NtRwahk2aOCyDRFAU5isCXouDrB255wzUtfqYoryJ/kdCRcOUS6EzoPe3kIL?= =?iso-8859-1?q?N6/HIlI//I6Ojnm0lgLD9bxYUI89gwNEwEa8dXbgVhQx+iz0r59sJMKKymJ3?= =?iso-8859-1?q?oYToyAVM74dMjJhQP+/aO9EivXxuk+Pl2wuj50AMH/IiPwqLJ8KPv4m1Vh8i?= =?iso-8859-1?q?P9MY542cNAnGBNNIAe4xDWLX1RH1xjxGCyNLwNERARjbf78VmBeOEtCk8Sr2?= =?iso-8859-1?q?kik//XkoCIiN19pLIT2kByrAQyq1XNkKpedfuw6Lz85vaXHhRT09Sp/6b4IW?= =?iso-8859-1?q?lA3aMqanUVqy/PX4Ys2OcaMqKsRvdpEa6Twl0mwfiu28RhbJarUjRwhvhx+C?= =?iso-8859-1?q?kPc9qVwYgKczU0779+3kAtVN8BQ6tlTCWS8UEIpNX5GKm7xtUHKSkhNxoyNx?= =?iso-8859-1?q?nfbXyYHsABaiGNV80CWWGUAPJBWZMYmezhuBoCi+BhZDrCySu7ddFJt5Rup8?= =?iso-8859-1?q?R/R+xc/v22goT/R1tNSEBcv5yf+bYWRQE0wjOcrVO0aWlToqqMw6PomOfL2c?= =?iso-8859-1?q?9T0PiGASDIdQ+LJTuKRBkLol+E8eabNdJV/QveoizDtpiwONj7oq7M/sWuPc?= =?iso-8859-1?q?Gfx8fAmV3pNqiDNX+CEqXTOfsjHBzU0ATaMyVOlbwiHEYTvFjzArLOyEBP2n?= =?iso-8859-1?q?tFGMMh/3cs8IN8mqytDYPsnC9/soT7OJ0hhATErtpIm20GJm4mnny7hKmL9C?= =?iso-8859-1?q?mqllXO+IxJc0qxszpYyHwaKdQBCrvv/VLDvxvWnbYjvIxplSG6wGzPUgxd6C?= =?iso-8859-1?q?81mYeiPAC5ETa4KdhYACJHQ9m1aSbea1h38uQKHtAdHlIU35exLd4mZKUX/2?= =?iso-8859-1?q?e434rIpaN0fYLw9pQtu+gZIUOouPFdHsBqol92sUY1DVBEiom3Ejfid6KODD?= =?iso-8859-1?q?ph1SjUeuA1ymhrrZS32cAH37xIFd7oPjAIqsZIORnowfI=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR83MB0923.EURPRD83.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(4053099003)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?9GABY0vSBrfk/pDvE2FbGHr?= =?iso-8859-1?q?p2fK3cZAAlwBFJKNpicmHU3OEEy3RW+4dBfzyqXuA4Ds5SgYMsVvM/iOoR3Z?= =?iso-8859-1?q?sGbEV+l9R05OfhGnxkcIZ12cdda9FGm3clLzdIuzY6bTCPVjhJoTQFt0XBFv?= =?iso-8859-1?q?9N5XKI+jD9+OIpziN692dIProTMrlLOLHBgKvvsYMIMtbFbzev3J2OlunISd?= =?iso-8859-1?q?IpOM13ttT+5Oe3FNQp8+BOwuREjfSeB3wxfScfDbVE7TceV7rxnipSwl+25K?= =?iso-8859-1?q?A0Z2giX7sb01X65IWiMMFPnaJcZl9yxKzKafT3vwApOUioGIK1JSKGX1U5l/?= =?iso-8859-1?q?75D8x+lyOc7Cs8QyT+7O0I+kMIre4TLBOVqC5VO+ytB1FjXobUq/uyezGwn1?= =?iso-8859-1?q?w83e2tcc5w0n/3jNvxZQ598RS+lWnK4DlYtsn6jBoIgOwZdASXiqu7JwDBZz?= =?iso-8859-1?q?58BWcDoXDTVTvfw1qGLzLaGMinpkBxh5baS45XN86BleSJ3PPImYjwgmHRoU?= =?iso-8859-1?q?0h3K+qjYKCnWd4VI++lxRllfeOUnfok7E9dLggvWFbBADdudmeV+qhA92mwl?= =?iso-8859-1?q?nK8NFD2UX6RsFTzQ+OxGmYx4MiUNe8DIgVkoxRIbNP7sfDeScxAq3cs+S/hw?= =?iso-8859-1?q?IHta7nfDfqNCgd4xjF7m3ng2vxd4ocmFGjL2JDNps7XZ4oLTK5Jpyjd3FHZO?= =?iso-8859-1?q?UacO7Pd1OoSfnINI9ePoB4Jcb/n0XUR2YHyPv8vRctmnWtk+F3lX7VkkXLjF?= =?iso-8859-1?q?I2axObS8zhS47eFBQ4OYJr0vnO6r2xkJAsV0M6f814uzlpo3FLO2Gh5jZUF7?= =?iso-8859-1?q?WaTCOBF9JQVlHXYZKdYYRhJtJAh83ukfy1llSlvuY8FfFrJX4uXvlYtPa9WJ?= =?iso-8859-1?q?qhXnE/+owYipN60FGqjVmPtCWVDK2Wz7XudF3Z2s14b/DUkYEuqEqcLsjl4u?= =?iso-8859-1?q?x807n5iyRLzjMkbknWN+DAc0L6KoB+NXBlKAwXMggdNLSgfPDAGfiMiLjyQX?= =?iso-8859-1?q?g6WofU6yZVATVVA4C/HoVq4TfACJWGvYPcB5LopDSKlozgd8ZhbrO01G/A5c?= =?iso-8859-1?q?6aDtd+h7KTwc6MN1YY7PvC7hq9Qj+leFUPHFJicQ+0LkgIBFy9BAmgW9J2Wy?= =?iso-8859-1?q?dECDCq78Pp+VlBWfpYkKhXiyQAS9KAnM7CuODiFlHR68mBSasZhhXdKR+cY4?= =?iso-8859-1?q?2WA7N4Eo5s9K/2ybpaYirWoIMseT8GWPFP1BCwCB4vcBzDpZtbT/2Qphs8em?= =?iso-8859-1?q?W+eCaQmWRsIMw9wS3n0BNHuCLAt0fmMXr/Z9G17P3rvGY+XWLvFihyr7M9Sp?= =?iso-8859-1?q?qegWWYwLBc3dJd/Yk85+anW7lpbr6sDAkO2B+AsOJHRJKw1FcGr8aREYKkzN?= =?iso-8859-1?q?t+LlDae1PRN3br6jHf+aaSBBGboctnMErq59KColOGXox6Fp2PdDbpcMufLG?= =?iso-8859-1?q?6AGSJi18wmGmskfF4xvty8gc2xMJMg/miquaUli1vyEfGNBbZd+lsK6Pmdjd?= =?iso-8859-1?q?BdgueGCIVy4Sz80PKdKd27suJMk92lVJaA4e3cyWp2K0fn2TppDrK3RMp9/F?= =?iso-8859-1?q?y00GR/D3gTArV?= MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB9PR83MB0923.EURPRD83.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29730e5d-1f43-4157-1f87-08ddc06c05c7 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2025 11:13:54.2371 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: y0xYv9Arjz1VyGSFhM7PVKsUelz3E7LEshsfbsWPISRB8K6qCgR74EPDZ3coZjSGJuYZsxm/4/46dT1RZ3KQTNIsvLWFpxLW3WX5uzBGZA4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA2PR83MB0684 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: newlib-bounces~patchwork=sourceware.org@sourceware.org Hello. Windows Arm64 ABI has `sizeof(long double) == 8` (https://godbolt.org/z/EYG74K67j) and `#define __LDBL_MANT_DIG__ 53` for which `aarch64-w64-mingw32` and `aarch64-pc-cygwin` build of `libm` fails on ``` ../../../code/cygwin/newlib/libm/ld/invtrig.h:32:2: error: #error "Unsupported long double format" 32 | #error "Unsupported long double format" | ^~~~~ ``` How would you prefer to handle this situation? If disabling build of 80bit and 128bit math functions is the answer, please let me ask you for your feedback on the attached patch. Thank you, Radek --- From 595e6e42a47e39c6964e26c2147bffc0ffef2f52 Mon Sep 17 00:00:00 2001 From: Martin Vejbora Date: Tue, 28 Jan 2025 21:44:06 +0100 Subject: [PATCH] newlib: disable 80bit or 128bit long double math for aarch64-w64-mingw32 and aarch64-pc-cygwin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't build long double newlib/libm for Windows on AArch64 as newlib/libm supports only 80bit or 128bit long doubles. Use 64bit math functions where needed. The newlib/Makefile.in file was updated using autoreconf command. Signed-off-by: Martin Vejbora Co-authored-by: Radek Barton --- newlib/Makefile.in | 60 +++++++++++++++++++++++++--------------- newlib/configure | 10 ++++++- newlib/libc/acinclude.m4 | 9 +++++- newlib/libm/Makefile.inc | 4 ++- 4 files changed, 57 insertions(+), 26 deletions(-) diff --git a/newlib/Makefile.in b/newlib/Makefile.in index c5492c6b6..f850be805 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -974,9 +974,9 @@ check_PROGRAMS = @HAVE_FPMATH_H_TRUE@am__append_141 = @HAVE_FPMATH_H_TRUE@am__append_142 = @HAVE_LIBM_MACHINE_AARCH64_TRUE@am__append_143 = $(libm_machine_aarch64_src) -@HAVE_LIBM_MACHINE_AARCH64_TRUE@@HAVE_LONG_DOUBLE_TRUE@am__append_144 = $(libm_ld128_lsrc) -@HAVE_LIBM_MACHINE_AARCH64_TRUE@am__append_145 = -@HAVE_LIBM_MACHINE_AARCH64_TRUE@am__append_146 = +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@@HAVE_LONG_DOUBLE_TRUE@am__append_144 = $(libm_ld128_lsrc) +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@am__append_145 = +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@am__append_146 = @HAVE_LIBM_MACHINE_AMDGCN_TRUE@am__append_147 = $(libm_machine_amdgcn_src) @HAVE_LIBM_MACHINE_ARM_TRUE@am__append_148 = $(libm_machine_arm_src) @HAVE_LIBM_MACHINE_I386_TRUE@am__append_149 = $(libm_machine_i386_src) @@ -3262,6 +3262,32 @@ am__objects_159 = libm/fenv/libm_a-feclearexcept.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-fetestexcept.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-feupdateenv.$(OBJEXT) @HAVE_LIBM_MACHINE_AARCH64_TRUE@am__objects_161 = $(am__objects_160) +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@am__objects_162 = libm/ld128/libm_a-e_powl.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_erfl.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_exp2l.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_expl.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_logl.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-b_tgammal.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-invtrig.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-e_lgammal_r.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-k_cosl.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-k_sinl.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-k_tanl.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_sinpil.$(OBJEXT) \ +@HAVE_FPMATH_H_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_cospil.$(OBJEXT) +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@am__objects_162 = libm/ld128/libm_a-e_powl.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_erfl.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_exp2l.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_expl.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_logl.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-b_tgammal.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-invtrig.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-e_lgammal_r.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-k_cosl.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-k_sinl.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-k_tanl.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_sinpil.$(OBJEXT) \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_cospil.$(OBJEXT) @HAVE_LIBM_MACHINE_AARCH64_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@am__objects_162 = libm/ld128/libm_a-e_powl.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_erfl.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_exp2l.$(OBJEXT) \ @@ -3275,20 +3301,7 @@ am__objects_159 = libm/fenv/libm_a-feclearexcept.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-k_tanl.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_sinpil.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_FALSE@@HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/libm_a-s_cospil.$(OBJEXT) -@HAVE_LIBM_MACHINE_AARCH64_TRUE@am__objects_162 = libm/ld128/libm_a-e_powl.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_erfl.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_exp2l.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_expl.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_logl.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-b_tgammal.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-invtrig.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-e_lgammal_r.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-k_cosl.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-k_sinl.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-k_tanl.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_sinpil.$(OBJEXT) \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/libm_a-s_cospil.$(OBJEXT) -@HAVE_LIBM_MACHINE_AARCH64_TRUE@@HAVE_LONG_DOUBLE_TRUE@am__objects_163 = $(am__objects_162) +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@@HAVE_LONG_DOUBLE_TRUE@am__objects_163 = $(am__objects_162) @HAVE_LIBM_MACHINE_AMDGCN_TRUE@am__objects_164 = libm/machine/amdgcn/libm_a-v64_mathcnst.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AMDGCN_TRUE@ libm/machine/amdgcn/libm_a-v64_reent.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AMDGCN_TRUE@ libm/machine/amdgcn/libm_a-v64df_acos.$(OBJEXT) \ @@ -4006,6 +4019,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ shared_machine_dir = @shared_machine_dir@ sharedstatedir = @sharedstatedir@ @@ -5099,11 +5113,11 @@ libm_test_test_LDADD = $(CRT0) libm.a libc.a @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fetestexcept.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/feupdateenv.c -@HAVE_LIBM_MACHINE_AARCH64_TRUE@libm_ld128_lsrc = \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/e_powl.c libm/ld128/s_erfl.c libm/ld128/s_exp2l.c libm/ld128/s_expl.c \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/s_logl.c libm/ld128/b_tgammal.c libm/ld128/invtrig.c \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/e_lgammal_r.c libm/ld128/k_cosl.c libm/ld128/k_sinl.c \ -@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/k_tanl.c libm/ld128/s_sinpil.c libm/ld128/s_cospil.c +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@libm_ld128_lsrc = \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/e_powl.c libm/ld128/s_erfl.c libm/ld128/s_exp2l.c libm/ld128/s_expl.c \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/s_logl.c libm/ld128/b_tgammal.c libm/ld128/invtrig.c \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/e_lgammal_r.c libm/ld128/k_cosl.c libm/ld128/k_sinl.c \ +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/ld128/k_tanl.c libm/ld128/s_sinpil.c libm/ld128/s_cospil.c @HAVE_LIBM_MACHINE_RISCV_TRUE@libm_ld128_lsrc = \ @HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/e_powl.c libm/ld128/s_erfl.c libm/ld128/s_exp2l.c libm/ld128/s_expl.c \ @@ -5111,7 +5125,7 @@ libm_test_test_LDADD = $(CRT0) libm.a libc.a @HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/e_lgammal_r.c libm/ld128/k_cosl.c libm/ld128/k_sinl.c \ @HAVE_LIBM_MACHINE_RISCV_TRUE@ libm/ld128/k_tanl.c libm/ld128/s_sinpil.c libm/ld128/s_cospil.c -@HAVE_LIBM_MACHINE_AARCH64_TRUE@libm_a_CFLAGS_libm_ld128 = -fbuiltin -fno-math-errno +@HAVE_FPMATH_H_TRUE@@HAVE_LIBM_MACHINE_AARCH64_TRUE@libm_a_CFLAGS_libm_ld128 = -fbuiltin -fno-math-errno @HAVE_LIBM_MACHINE_RISCV_TRUE@libm_a_CFLAGS_libm_ld128 = -fbuiltin -fno-math-errno @HAVE_LIBM_MACHINE_AMDGCN_TRUE@libm_machine_amdgcn_src = \ @HAVE_LIBM_MACHINE_AMDGCN_TRUE@ libm/machine/amdgcn/v64_mathcnst.c \ diff --git a/newlib/configure b/newlib/configure index 33a2ed1c5..004a4a997 100755 --- a/newlib/configure +++ b/newlib/configure @@ -6198,7 +6198,15 @@ else fi - if test -r "${srcdir}/libc/machine/${machine_dir}/machine/_fpmath.h"; then +case $host in + aarch64-*-mingw* | aarch64-*-cygwin*) + IS_AARCH64_WINDOWS=yes ;; + *) + IS_AARCH64_WINDOWS=no ;; +esac + + + if (test -r "${srcdir}/libc/machine/${machine_dir}/machine/_fpmath.h") && (test $IS_AARCH64_WINDOWS = no); then HAVE_FPMATH_H_TRUE= HAVE_FPMATH_H_FALSE='#' else diff --git a/newlib/libc/acinclude.m4 b/newlib/libc/acinclude.m4 index 52a6c57cf..ef9fc1d27 100644 --- a/newlib/libc/acinclude.m4 +++ b/newlib/libc/acinclude.m4 @@ -63,7 +63,14 @@ m4_foreach_w([MACHINE], [ z8k ], [AM_CONDITIONAL([HAVE_LIBC_MACHINE_]m4_toupper(MACHINE), test "${machine_dir}" = MACHINE)]) -AM_CONDITIONAL(HAVE_FPMATH_H, test -r "${srcdir}/libc/machine/${machine_dir}/machine/_fpmath.h") +case $host in + aarch64-*-mingw* | aarch64-*-cygwin*) + IS_AARCH64_WINDOWS=yes ;; + *) + IS_AARCH64_WINDOWS=no ;; +esac + +AM_CONDITIONAL(HAVE_FPMATH_H, (test -r "${srcdir}/libc/machine/${machine_dir}/machine/_fpmath.h") && (test $IS_AARCH64_WINDOWS = no)) AM_CONDITIONAL(MACH_ADD_SETJMP, test "x$mach_add_setjmp" = "xtrue") diff --git a/newlib/libm/Makefile.inc b/newlib/libm/Makefile.inc index bf31b1be7..c191a4473 100644 --- a/newlib/libm/Makefile.inc +++ b/newlib/libm/Makefile.inc @@ -55,8 +55,10 @@ include %D%/test/Makefile.inc if HAVE_LIBM_MACHINE_AARCH64 include %D%/machine/aarch64/Makefile.inc +if HAVE_FPMATH_H include %D%/ld128/Makefile.inc -endif +endif # HAVE_FPMATH_H +endif # HAVE_LIBM_MACHINE_AARCH64 if HAVE_LIBM_MACHINE_AMDGCN include %D%/machine/amdgcn/Makefile.inc endif