From patchwork Fri Jul 4 15:49:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Radek Barton X-Patchwork-Id: 115664 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 97BE23851AA3 for ; Fri, 4 Jul 2025 15:50:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 97BE23851AA3 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=h9MumegP X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on20711.outbound.protection.outlook.com [IPv6:2a01:111:f403:2608::711]) by sourceware.org (Postfix) with ESMTPS id 795C23852FC2 for ; Fri, 4 Jul 2025 15:50:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 795C23852FC2 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 795C23852FC2 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2608::711 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1751644200; cv=pass; b=vthVee+n5xkf67MiUYiwrv4Ro76xkuwTljCjFUHk89pa+7lIeLC2psigCrfXTbb+sYSWnl8RUrYrbptlzbS/6ZhuWu/wZhM7fi9p33kDyHmqnlIcRCHQDzCC/RL2giPdXJJ4GGIFLpzB4PUJG53wogH/v3G7r7u7Bg/Q3JtCLRI= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1751644200; c=relaxed/simple; bh=gtuHPKcz1d8tXlj68GBLBxCOFcWwXUfs+j80nUqTNt4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=o4oBbecF97Q76aIUsLjzfcuQzBygxhe6x84hWDBGFC5B1Qwonb83xpihh0WMZHyg0Hh0enL6NOuHOtdG2LJlAmRUDGpyUSDFdhRiHk4GL81o6bsYXdLAnjTyz8Baqo3TmpyhUEY37lLlY7iEpN0Hun2zY+yV0C3NxlwVvOF+DOk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 795C23852FC2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=h0wvqoxXV5fS1EOw8cGI2MVAGQ/o0AWRbVtsuya/5MP2+BdCS28Tvrwd99aKC8nfaRczSHf3sbZho0bY0xUvzJGPKBv0NQHJ0lVPbOtURTAXkxOH+zMh8/XIY8WHY0XQwGh+Dhf+wY6q9gv6TqVFuUeSHHoquynlrzApx2IId2MMZwZ6LxiPG7qw9JC1DpZ4Pp93L6to/s3ZfHF2KMR7AZrhB1FhlQ9lGUSh60knO/HZ3/0U2Z8fh7OGQ/9XoFFj9R34goGvsJao/ipTkYgu9/KWkydJxmQhUhz2JOjdARufBzxebGWJk3zmOlvKocPVk8H9AE3F72JPXL1IuaLvXg== 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=aX5kQuUqRwiQ7tyxFnmNkxPim8bA3yFTtWcRcpoI9b0=; b=B3gQKaHOEovveOji9f9o+lUx2caBNtvK/fNroqsrcxpl4zbO3qz7oEu9Nv/KNW8CE2PZhQ2zhk2QEb8TsbsjSDn4/XXpEzAZcu13HBHA2BlN+AgLVNJV5NHhmgyl+SgTP4PnhjuB1736JGIgMfVJP5J/8VJBvSNoQYKkcxsCq5GbUhRbq3+LX3berjitxG3souR78GL0hnJ7UX3Z+Kts/yxtbdJSSADYC8w+eFaEPElE8Lbj9AfhcXByYdUZScccudFhdcPqOfu09zQLUm+kOrfLvqH/hW/C7EPskrPki6sNgQgb1ttUnzoV+DS9FH02TCOZeovMyDISC6GDfQBBvw== 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=aX5kQuUqRwiQ7tyxFnmNkxPim8bA3yFTtWcRcpoI9b0=; b=h9MumegPr0Z7yPSXM8UHjfTOj8+lXhITD0GZCNO83t+gsE4vlqfrxczM+Wa69QdS739ndx5e4EWwKQ1kB+iDptNfH3ZTrpTnOMJzcSSw03EWMGv8K/jqP+NU9RKOycjeWhyz+GvupHZMdo/opcBUuk826aNyRipZ+XBu04fNqJg= Received: from DB9PR83MB0923.EURPRD83.prod.outlook.com (2603:10a6:10:5ca::18) by DU4PR83MB0677.EURPRD83.prod.outlook.com (2603:10a6:10:55e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.10; Fri, 4 Jul 2025 15:49:57 +0000 Received: from DB9PR83MB0923.EURPRD83.prod.outlook.com ([fe80::4407:2fff:68f4:1eea]) by DB9PR83MB0923.EURPRD83.prod.outlook.com ([fe80::4407:2fff:68f4:1eea%3]) with mapi id 15.20.8901.009; Fri, 4 Jul 2025 15:49:56 +0000 From: Radek Barton To: "newlib@sourceware.org" Subject: [PATCH v3] newlib: add dummy implementations of fe{get, set}prec for Aarch64 Cygwin Thread-Topic: [PATCH v3] newlib: add dummy implementations of fe{get, set}prec for Aarch64 Cygwin Thread-Index: AQHb7PtJvvTlYxGJCU6789rangjV2g== Date: Fri, 4 Jul 2025 15:49:55 +0000 Message-ID: References: In-Reply-To: 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-04T15:49:54.611Z; 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_|DU4PR83MB0677:EE_ x-ms-office365-filtering-correlation-id: 2c1f7897-414f-407f-6d05-08ddbb126c6c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|4053099003|38070700018; x-microsoft-antispam-message-info: =?iso-8859-2?q?t4xssJ7OJov+IETYCKyRy5AwDb?= =?iso-8859-2?q?eqFY1zbbl/SeDHFuVw5ZxpVWV85DpLkdJPQXwyulc245HKKpkGZSu1x60PL4?= =?iso-8859-2?q?AtrpEQMsp//7pQzT+l3Wu3jxH/is2FV4qiNeWPDUJdAwXbCQH3mTMy5RBtGv?= =?iso-8859-2?q?L6CCf3yv1S4msPvYgeTHGSj0/gLWuFGT1ymPTTF9sAnGnR9WW1k1ew96Y6tx?= =?iso-8859-2?q?HsDTpvJOBqyTSjeOI5utQPR6pjnjL+ikqfRSmLfjoTRrp/uuK0St8AgHOITS?= =?iso-8859-2?q?fWjm+ufs2hA1Zc77Awc7suR1dbY46vWAMPQIog4tP77VutFYCO+TeKz/HobQ?= =?iso-8859-2?q?Qefv5YU7qlMg9ergJq84RUXtL4RYLVvZCD+3iyaB+D9+rue7h5yFtdbGQ3pK?= =?iso-8859-2?q?g5P1bqn1NS6tOE1t9TBb2ueUVuAZmKvEfbp6ccNffsC9HIsqR9oEoo1u2Pdy?= =?iso-8859-2?q?EfI2bX0nmwnq2RLDEorOeIj6+ZPh7t0K+EcMsmzGrStCq8cyWji8qfupoAPY?= =?iso-8859-2?q?7YLnHUu6PpJoPFiNajXbCuk0dZeKuJ+IwyQYfoFQcHQaIoFeskT8d6xL5s2N?= =?iso-8859-2?q?mHT65whkoE92v2PkA5jyJUO/SgRf94rZC0EtOIghi4NYlKUwbwJgxg2fMQVO?= =?iso-8859-2?q?2xSKf1LkFECGJkKvLFIShOEMIU1sulRktk3UezYTOKdLjvopZhTL4me0qokg?= =?iso-8859-2?q?8Kv19NznoVseT0K4q6p4KiPijTcgOe2aH01o/GZ+6fC0hWpdx4IDt0FyNeGK?= =?iso-8859-2?q?zv8NIRjkZfXobHfVuqtW0gEIm0ZZW2cYxgaC/FJAiYk9WgXoLGTo90Pua4dk?= =?iso-8859-2?q?0kgoTGzOF+ipIpAioc38yMQhiindvyvoymBUo3fQREY0ADCrB9KKGO/v7ARF?= =?iso-8859-2?q?b0mHpW+bRmLi5NHKNxKYGxzbhYAIzK5iXGGkL2dcufhZywBhzWd2CxkgVj+N?= =?iso-8859-2?q?UoezVfeNv3WQ3bPyxND/Uii8GPOTRlPvg+hWtdoaYWeGzVAxlcXsDwSGEPxU?= =?iso-8859-2?q?ySjVLKvASBqsr0SlCwJ8GaaFpu9Sy4nqD5vRZcVPOM/9Fh+YCk2FXfmXxjvS?= =?iso-8859-2?q?/g/Pp/20j4aTJGB7rlhIRfI3NIXmzHHxiPb4FEyXLoLRPGfymwwNNyAWZTJ3?= =?iso-8859-2?q?GaESCDb7m7RxVPjRarZAUFpcLSvGqolsOOespF47ycjC3DRcqCh6Kf0MefH2?= =?iso-8859-2?q?gxo15ojPk4MDBBbqkiVaraRoSm34MMb6LQ77S+Jikvt61WfAF3bIYosHf8XE?= =?iso-8859-2?q?RUKG+COC9iRjn0boOQxhSNmgkqxrLpVybvuAuQ4Xz3CX1Q2MCGvDISEmdGTb?= =?iso-8859-2?q?XICcPTKHm2PvdbBF4VXyIgTrOAoWUBj82Do5Q5Z1E3j7ns+V4Os1FK8wDdQW?= =?iso-8859-2?q?qeOFNwJE05oqsFGOkaLvQfjxBPHkCmfLl/ZVmSKd01e0zzw7Mqm0/eUbRw6D?= =?iso-8859-2?q?zczsV18KvFqbye4Uz2wgLNeWeY/VWscotIg254Em125qc=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)(1800799024)(366016)(376014)(4053099003)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-2?q?1UeFa0QV7iKg4kDRAOwVyCJ?= =?iso-8859-2?q?vH8AUry4FGjKFkzUhpYo/nto8k0LBWW89YeCWT6Ol+P1do51fJxIMBdVQL/S?= =?iso-8859-2?q?ljHypAnP7/fiAIFo6b+azksmLXufS2VXNUeK/+v9RgFq91TUen+6DUzu9IWF?= =?iso-8859-2?q?BmNLRB2eACRKUY+64i0ur5uKFgsl5ErRCT7qHvpBd7im+Aq2FNN7PrAY+2nl?= =?iso-8859-2?q?1SJkysToxLJLVApeTJFWGMfJ44IieAhz5EjI5TVBnngMfdf+lp9BYyFIRFCo?= =?iso-8859-2?q?xVMqwA/RPGyx3zzoLUd2Q8X7k5FkI0cxhf3ZHtl23/Vh95UJRpKAeQ8aAyey?= =?iso-8859-2?q?31Xa9hlL4rjOLqKl3wj26TK4dhJyuEaXMzort7zIdcHd28jQlsAynw7xjMS4?= =?iso-8859-2?q?3HM6wZv4asr9nz/cyHTWREBy+4bGJDBd3KsLDS+Y/ce+BaF/PnAI6BP3Kx+3?= =?iso-8859-2?q?ClsTKeBxMMA5BjIsmWCiEIKs68svYHdThE73bWJvkTgR2DC0L0IharrbET8q?= =?iso-8859-2?q?+2z3PJ0k1KOGyrjxplEugE8o1sPCaBr8NGCgLrPfQhtIzTPKta2B8z4uUN0P?= =?iso-8859-2?q?kWpsy+czqu3Y2wWLXpoo/LttLIgiFkwCsQC5kCE4B6Gfa/xILEI6M3vgtfVE?= =?iso-8859-2?q?FTEjiog0WdDjhx7imtaEG2bZ90rKW3kpFFnICtI4d09ZDJVH7P+Hj+77i28T?= =?iso-8859-2?q?Ha2Y/Rv/xr73L8Hl7XkBu4PDPq74hSYbV2g/by0ByTcqE1SAruPfMymTFW23?= =?iso-8859-2?q?9mq1J5jIhwWUdHi3+xP5tvb8X76JgIMrtWUuINa9oDKeXidGK7e5P2ww+1cP?= =?iso-8859-2?q?zqe0jG1x8fYP3btFxsGpHXuV6024300g1IK/5C1gfwqePzdkps05sEOoXDPT?= =?iso-8859-2?q?mEPvYI+wf84RilWQ9sdL8SAaWQdlJINqoRgbNzgE7FWSh0w7pGvsRv8gfVTR?= =?iso-8859-2?q?Bag99lUvu6bQRBhsaG8kaLArJSiha1DI08tZCkC4/8GtuTi6pUJEBXvTjlO+?= =?iso-8859-2?q?qTL5heTljYZeHWDevwVg28ihT70jyTClawMw7emDxuN3VcK0xlBffOBnDsF0?= =?iso-8859-2?q?w9iw4AwR2lKsPGneksKAkUpt5SimSsgYRqWsnDCfSwU2oekXmp2zPIrqSZGl?= =?iso-8859-2?q?igSyFnwoAnXu/aSvtsFFjuyUz6SIhL+IqK09gfYEFL0qAFqxmbjZmvQeVkpg?= =?iso-8859-2?q?3c0sh1RgTP+/KXnG3BmXwiKhh6pM5t6n5VGzQAU0YnNBvVHEnSKnrWNmEbaw?= =?iso-8859-2?q?9EnQedLYbst1hSSoqAsJMJ+g6FSfve+zO8xdh5to7dBahXW3EhOFg6bjGQpY?= =?iso-8859-2?q?4CruorOnSAIQTsSfYFwiJU9cqZZbTGwAV/b1EwDYeOiOto40WQS973IYJJKv?= =?iso-8859-2?q?hpAtnAZMrfhKaRQ4a8KkxW231MtW/4AdaGeNNnw/YjCZOl2DSldsknK/E0qh?= =?iso-8859-2?q?hQkVry4Ig0IDr9xjG24NQ0n1L0yrSiVDZLTDZprIqOIlqsCaIbvZ/TpMOv1n?= =?iso-8859-2?q?K0e1outVFwvcKrG0kZpEUqilgxuc/isMyMW+R7pOoE28EsATSst86qblvKIC?= =?iso-8859-2?q?xId0YF202xM6s?= 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: 2c1f7897-414f-407f-6d05-08ddbb126c6c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jul 2025 15:49:55.8696 (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: CpMirJSMkH8Fvg5BPYHX87CGrMre2b9Qux5CoWXlWfR59ShQ48fuFSvdBRdsNMP3Y1Jvru9FkSJl4y4lJGZdBZZeICpV0AE+kzIAmBIcKoo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR83MB0677 X-Spam-Status: No, score=-11.6 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, 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. Sending a new version of the patch that combines both suggestions. Radek --- From 87aebf36fca923569554b7d95adb4eb5d6c7d8c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Radek=20Barto=C5=88?= Date: Thu, 3 Jul 2025 12:02:03 +0200 Subject: [PATCH v3] newlib: add dummy implementations of fe{get,set}prec for Aarch64 Cygwin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch introduces dummy implementation of fegetprec and fsetprec for Cygwin build as those symbols are being exported by cygwin1.dll and AArch64 do not support changing floating point precision at runtime. Signed-off-by: Radek BartoĊˆ --- newlib/Makefile.in | 40 ++++++++++++++++++++++++ newlib/libc/machine/aarch64/sys/fenv.h | 15 +++++++++ newlib/libm/machine/aarch64/Makefile.inc | 2 ++ newlib/libm/machine/aarch64/fegetprec.c | 17 ++++++++++ newlib/libm/machine/aarch64/fesetprec.c | 22 +++++++++++++ 5 files changed, 96 insertions(+) create mode 100644 newlib/libm/machine/aarch64/fegetprec.c create mode 100644 newlib/libm/machine/aarch64/fesetprec.c diff --git a/newlib/Makefile.in b/newlib/Makefile.in index 5a1987bdd..f1b2252ad 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -3251,11 +3251,13 @@ am__objects_159 = libm/fenv/libm_a-feclearexcept.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-feclearexcept.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-fegetenv.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-fegetexceptflag.$(OBJEXT) \ +@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-fegetprec.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-fegetround.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-feholdexcept.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-feraiseexcept.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-fesetenv.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-fesetexceptflag.$(OBJEXT) \ +@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-fesetprec.$(OBJEXT) \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/libm_a-fesetround.$(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) @@ -5086,11 +5088,13 @@ libm_test_test_LDADD = $(CRT0) libm.a libc.a @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/feclearexcept.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fegetenv.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fegetexceptflag.c \ +@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fegetprec.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fegetround.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/feholdexcept.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/feraiseexcept.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fesetenv.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fesetexceptflag.c \ +@HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fesetprec.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fesetround.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/fetestexcept.c \ @HAVE_LIBM_MACHINE_AARCH64_TRUE@ libm/machine/aarch64/feupdateenv.c @@ -11081,6 +11085,9 @@ libm/machine/aarch64/libm_a-fegetenv.$(OBJEXT): \ libm/machine/aarch64/libm_a-fegetexceptflag.$(OBJEXT): \ libm/machine/aarch64/$(am__dirstamp) \ libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp) +libm/machine/aarch64/libm_a-fegetprec.$(OBJEXT): \ + libm/machine/aarch64/$(am__dirstamp) \ + libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp) libm/machine/aarch64/libm_a-fegetround.$(OBJEXT): \ libm/machine/aarch64/$(am__dirstamp) \ libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp) @@ -11096,6 +11103,9 @@ libm/machine/aarch64/libm_a-fesetenv.$(OBJEXT): \ libm/machine/aarch64/libm_a-fesetexceptflag.$(OBJEXT): \ libm/machine/aarch64/$(am__dirstamp) \ libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp) +libm/machine/aarch64/libm_a-fesetprec.$(OBJEXT): \ + libm/machine/aarch64/$(am__dirstamp) \ + libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp) libm/machine/aarch64/libm_a-fesetround.$(OBJEXT): \ libm/machine/aarch64/$(am__dirstamp) \ libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp) @@ -14544,12 +14554,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-feclearexcept.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fegetenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fegetexceptflag.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fegetround.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-feholdexcept.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-feraiseexcept.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fesetenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fesetexceptflag.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fesetround.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fetestexcept.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-feupdateenv.Po@am__quote@ @@ -44362,6 +44374,20 @@ libm/machine/aarch64/libm_a-fegetexceptflag.obj: libm/machine/aarch64/fegetexcep @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fegetexceptflag.obj `if test -f 'libm/machine/aarch64/fegetexceptflag.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fegetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fegetexceptflag.c'; fi` +libm/machine/aarch64/libm_a-fegetprec.o: libm/machine/aarch64/fegetprec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fegetprec.o -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Tpo -c -o libm/machine/aarch64/libm_a-fegetprec.o `test -f 'libm/machine/aarch64/fegetprec.c' || echo '$(srcdir)/'`libm/machine/aarch64/fegetprec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libm/machine/aarch64/fegetprec.c' object='libm/machine/aarch64/libm_a-fegetprec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fegetprec.o `test -f 'libm/machine/aarch64/fegetprec.c' || echo '$(srcdir)/'`libm/machine/aarch64/fegetprec.c + +libm/machine/aarch64/libm_a-fegetprec.obj: libm/machine/aarch64/fegetprec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fegetprec.obj -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Tpo -c -o libm/machine/aarch64/libm_a-fegetprec.obj `if test -f 'libm/machine/aarch64/fegetprec.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fegetprec.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fegetprec.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libm/machine/aarch64/fegetprec.c' object='libm/machine/aarch64/libm_a-fegetprec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fegetprec.obj `if test -f 'libm/machine/aarch64/fegetprec.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fegetprec.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fegetprec.c'; fi` + libm/machine/aarch64/libm_a-fegetround.o: libm/machine/aarch64/fegetround.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fegetround.o -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fegetround.Tpo -c -o libm/machine/aarch64/libm_a-fegetround.o `test -f 'libm/machine/aarch64/fegetround.c' || echo '$(srcdir)/'`libm/machine/aarch64/fegetround.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fegetround.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fegetround.Po @@ -44432,6 +44458,20 @@ libm/machine/aarch64/libm_a-fesetexceptflag.obj: libm/machine/aarch64/fesetexcep @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fesetexceptflag.obj `if test -f 'libm/machine/aarch64/fesetexceptflag.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fesetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fesetexceptflag.c'; fi` +libm/machine/aarch64/libm_a-fesetprec.o: libm/machine/aarch64/fesetprec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fesetprec.o -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Tpo -c -o libm/machine/aarch64/libm_a-fesetprec.o `test -f 'libm/machine/aarch64/fesetprec.c' || echo '$(srcdir)/'`libm/machine/aarch64/fesetprec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libm/machine/aarch64/fesetprec.c' object='libm/machine/aarch64/libm_a-fesetprec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fesetprec.o `test -f 'libm/machine/aarch64/fesetprec.c' || echo '$(srcdir)/'`libm/machine/aarch64/fesetprec.c + +libm/machine/aarch64/libm_a-fesetprec.obj: libm/machine/aarch64/fesetprec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fesetprec.obj -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Tpo -c -o libm/machine/aarch64/libm_a-fesetprec.obj `if test -f 'libm/machine/aarch64/fesetprec.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fesetprec.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fesetprec.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libm/machine/aarch64/fesetprec.c' object='libm/machine/aarch64/libm_a-fesetprec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fesetprec.obj `if test -f 'libm/machine/aarch64/fesetprec.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fesetprec.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fesetprec.c'; fi` + libm/machine/aarch64/libm_a-fesetround.o: libm/machine/aarch64/fesetround.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fesetround.o -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fesetround.Tpo -c -o libm/machine/aarch64/libm_a-fesetround.o `test -f 'libm/machine/aarch64/fesetround.c' || echo '$(srcdir)/'`libm/machine/aarch64/fesetround.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fesetround.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fesetround.Po diff --git a/newlib/libc/machine/aarch64/sys/fenv.h b/newlib/libc/machine/aarch64/sys/fenv.h index 1f97791a7..369cc4850 100644 --- a/newlib/libc/machine/aarch64/sys/fenv.h +++ b/newlib/libc/machine/aarch64/sys/fenv.h @@ -123,6 +123,21 @@ fegetexcept(void) #endif /* __BSD_VISIBLE */ +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __CYGWIN__ + +#if __MISC_VISIBLE +int fegetprec (void); +int fesetprec (int __prec); +#endif + +#endif /* __CYGWIN__ */ +#ifdef __cplusplus +} +#endif #endif /* !_FENV_H_ */ diff --git a/newlib/libm/machine/aarch64/Makefile.inc b/newlib/libm/machine/aarch64/Makefile.inc index 478aaeed8..0064363e7 100644 --- a/newlib/libm/machine/aarch64/Makefile.inc +++ b/newlib/libm/machine/aarch64/Makefile.inc @@ -33,11 +33,13 @@ %D%/feclearexcept.c \ %D%/fegetenv.c \ %D%/fegetexceptflag.c \ + %D%/fegetprec.c \ %D%/fegetround.c \ %D%/feholdexcept.c \ %D%/feraiseexcept.c \ %D%/fesetenv.c \ %D%/fesetexceptflag.c \ + %D%/fesetprec.c \ %D%/fesetround.c \ %D%/fetestexcept.c \ %D%/feupdateenv.c diff --git a/newlib/libm/machine/aarch64/fegetprec.c b/newlib/libm/machine/aarch64/fegetprec.c new file mode 100644 index 000000000..82e08fb96 --- /dev/null +++ b/newlib/libm/machine/aarch64/fegetprec.c @@ -0,0 +1,17 @@ +#if defined(__CYGWIN__) + +/* Returns the currently selected precision, represented by one of the + values of the defined precision macros. */ +int +fegetprec (void) +{ + /* AArch64 doesn't have configurable precision. + Return a fixed value indicating double precision (most common). */ + return -1; +} + +#else + +#include "../../fenv/fenv_stub.c" + +#endif diff --git a/newlib/libm/machine/aarch64/fesetprec.c b/newlib/libm/machine/aarch64/fesetprec.c new file mode 100644 index 000000000..dd507001c --- /dev/null +++ b/newlib/libm/machine/aarch64/fesetprec.c @@ -0,0 +1,22 @@ +#if defined(__CYGWIN__) + +/* http://www.open-std.org/jtc1/sc22//WG14/www/docs/n752.htm: + + The fesetprec function establishes the precision represented by its + argument prec. If the argument does not match a precision macro, the + precision is not changed. + + The fesetprec function returns a nonzero value if and only if the + argument matches a precision macro (that is, if and only if the requested + precision can be established). */ +int +fesetprec (int prec) +{ + /* Aarch64 doesn't support changing precision at runtime. */ + return 0; // return failure +} +#else + +#include "../../fenv/fenv_stub.c" + +#endif