From nobody Thu Apr 27 23:55:48 2023 X-Original-To: freebsd-ports@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Q6t142ffDz4888N for ; Thu, 27 Apr 2023 23:56:08 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic303-25.consmr.mail.gq1.yahoo.com (sonic303-25.consmr.mail.gq1.yahoo.com [98.137.64.206]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Q6t132zQ4z3PYD for ; Thu, 27 Apr 2023 23:56:07 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=RsYhJs8I; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.64.206 as permitted sender) smtp.mailfrom=marklmi@yahoo.com; dmarc=pass (policy=reject) header.from=yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1682639765; bh=rRgH9+XYDgHrTOls9GmylJraYZockpMu3V3tdAEPLfc=; h=From:Subject:Date:To:References:From:Subject:Reply-To; b=RsYhJs8IS/vKw4V+gZJenAcQFrPD6+UFjuu9+Qt5oePGDFoG+nguBXz5YrCuT8nhpPLNXFEu7ucv3V56muE7ljV8OIjgUyj7mVLksRIqjUOSLfjQ4rmYjewoJcE2Yl7wpVNrbRbVSbWWoor0oXOWFwdw8qzqV73nQyV9xgS5g502GvM2sI5IJoxnTDZ9VLoGMMYfpvvG7v91pmA7P1QFM+cquDvADRg6PVpg0BTklEBvAa/rL2Oivh2Cp1n1OxjUZUsTb4ZIXEepw1bCUXpddfoLOhoB5aq83f/x9ZtCBENx1jcriUjHVzijELhKdyKvjW8AV2Dt/SFw9m82Wz4Aug== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1682639765; bh=QgOJIFl+XMTZXicqxz/1V/EJRIWTKRZXtcNzdNfTwky=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=bkzoTZgAERDxYmm6cVI/3FI5oOdRuU4fVrqMkP2kYcN0puWhzDYPprXv3bfv1ZtpjJW5f2QThtsl233Y2VaS1S7dMRV+qnA5j1+jkWvJoNWRCtEER19IBirrfqVPRdWfhvfbwXImODAC8kyxpL7aHNjMAslMi/4SW4/PJxaRl6e84h2oNVVUQfaACOnfz+RRaQ4XV9T0jSCe4bFMQtWGdGzewmPEZui77jsDBB1ha2glZIcC7yp4RMqpR2ac1MiaZOBFib2HUtIVOSk5teogKBYaL9A0DAKy/H5GiiYzfCRbO6h3MYHWDLPeXCnXX+dgaYjMtjAyqOS7rxZYQ4Fhhg== X-YMail-OSG: aQfnG00VM1mqAF_A5jKbaKVVm9m8xEcC016hG1HKzlJ6cUYkZgy71A1Imi2Ny00 7yPV50b2ENs6Ap6H8YVNVf2l4vuExB_lhKGwqjRQYMcKtPrVBQstLh_qlboC.26UX_X7ILAaKuWk zcZiEiltgF4HGwE74Xoi.MP4abSDAXnCKk2Nsl1RsGTEOpsHk85y7CMJoyhu1WYM7KvyAF5AEKZI 1aLkiPLfufQHLPqAZMC.DQETiNaSp9rxvWvU00Pob_13YfWCzMXvQwjpCqdJts37cpq0933HAp4n HG7rwiRCTNpE1SDQa.66lM00ZCPKN1gnhR0_oYX848N0SbgDK7PVfcswbYmwQ7NuogirOPa9MEx3 atjTuq5cI6PzhMVOJzW8wMk4_vatxiXNh45Ht4fEKYQSMybi9ES_nflylyOJaDnYDWk1zv0KhF3v YGel.OUSfJqpStBNUR4WHmPhz2zAcv.Vsedm2XCOBUGIIslwW0UUlVSzwX_ThunceAL5PFuuOdYf LwzJb4DeCVr52OdFhfO4sBDm.If5ccuxyzBSzR9s5IQCp94ty0zVkVFJZGGeoBhENf1w0QKcycoX EceOKJ55Uo5tfq21c9_B.Ys4ULE9Iy2NqNdOKcldy2JaEg40ZAh_sIpI8vsYF7pIGhX9mbdAlXAJ e3wRVXC1boYb.Q_g_adKMO8_pJ6qwO24mUVIFzARcHlh0VCyWd8s1qnw6Zp5dwulaD_n.CkfXq1S CtxHZp8uvm2a0sSOip3HF9jUyImXx6Q8QvqfZ43fzCF8ePVOcojjUvvUTQbJsoe4SWgBov1xwTgi .AneWW3vnvQLcfy4gGi_qBvG4Cimu5ae.qRnAOiJlgDXXPZpUL32C7n6J4Rf5PguuK4mdviTeZTK iD5lFguXuHk2ZaZNU6ZU.mWRibPYWxxfZ6H16Iuq9.5iAuwy4Q..QMeRkLEaFNU_DBtCrbxqNun6 vA98G6xr84PuWgj8VHc_iHdnKFjUUbymFvWITxwXSa1ja3XsHP.zagReJ81qbIGCwCkZmJyNcQaA SVOsoWYUZD95R1QEnSZIqyy0y4x8VMyvxnyPjhG43QFXuT3t.LmCt9x0ftAjiIHVjtLObnzWHH9Q OP_JgxKTQg8wiLYjOeaihdp4C1QySXJXUX1ArUEZZuUpmnbbOrXYui7Td5IojUUhzlB2O7Nv_ZAH PO4BYaZVyYqiJx9dCJ4vjuQ6HEjn8IXR82tEostQgQfUUTniZNmB1ArX_0.h7_dJmTZw8K3flTA1 LbtjQexk8256qIsemoXpZuTl.8CX8aqLnwxTn1H0J4XasApC9ybsj4bieTXO8hEB8qhTJT3vp_8p WDS5C5aJKCrYTm.VTYKLRR6rhXuxK.vrXsiyd.2RhYOBoaEffkyHBAVDk1_Zw8ZiJwyftXv8qBBH 0U76sGLRFShkx3nTlZlC1TFHiuGUzXO9EDVsxM5n81nXWJM6BKEoiDbvyQn6j7suCxD8C9bkjPSJ S7MPX1ifKSxSNyJXnE8gpDVFK3fN4zCyxFPXwuk3iLCmDEpWrInJFKrCxZhvOeY2Yk4AfGXooFxM 8ZbfXEd2S6WE2zmGXXSaaoCygKkqr4DVEInuTN0P6N2AvguzVKDWyWMweuoeBwQrFkBzozHsh_0n hAZdrGLxV633kCUKPrZok6mmp7a6EtQm6udssLYiSs.G2TG6ZfpUEBu8IPqnsg04KGet5gMIq5fi zRxHhMFM4_wp1_LUqX8SqNRvwqo.LIrMW08T1P7r6.Irzh31DZyJe1I9tiKAAL6EHJlMQh2GMIuH PdC4ZkGLcZxc9oc8liq4ZT.6DMWOIlqMcw6qDqihH6W_HpnYJDEMKhrhEYyDt8OWwYHM2q_Ph3dQ TKvaGGU5i4D2nABqo4hCCFYXl0CPUGVHMdwc3xQ5OLiATJjaUYXfVfhblfh4IxiZljYtbAIFUQEa mUz0MHXPDGP0IRgkt4jOtANElt4GuKdq4LKwYFPY2iKOz6c7TzXFgVQWtQfzG4Iz64HgXEGNq5gu yFau6168rkcOzmKQf9vwnCDI.FGvHUZ1EUQmEZzIC1Q3SCFOAFaU.qZwZUR3HxBMEBMImrjHWLD1 aJhoLcj6dmvH3IqXi0ErC1SCfmSbT89I.Xqxtibou5LvFoJgNogcr3Glp_rZze_pB21zhtqjuVDw dmJBbHpLvtjg_LsBq6Ovj4KlEZe1BlL2zSvp1Zc.mcZO9HlwMnvjQm4V20AMMlXA8JD.N6PDtmVR vEgPAiTYoEpcRipMsZORNhj6bNNHi6SZao57OhgH1pGujQrqejnLlRlUtk_vZgWGsqcvnQuprBGn GaQ-- X-Sonic-MF: X-Sonic-ID: bf928397-d699-4200-b76d-28740147836e Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.gq1.yahoo.com with HTTP; Thu, 27 Apr 2023 23:56:05 +0000 Received: by hermes--production-bf1-5f9df5c5c4-dxcv9 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 4a9d44ee1349dff7fe5ed05c556e51da; Thu, 27 Apr 2023 23:56:01 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Porting software to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-ports List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-ports@freebsd.org X-BeenThere: freebsd-ports@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.400.51.1.1\)) Subject: lang/rust vs. command line corrections to default clang -mcpu=NAME+FEATURE+noFEATURE flags (e.g.) Message-Id: <60DB02F8-CA05-4D2E-A564-DF20EFDF1E22@yahoo.com> Date: Thu, 27 Apr 2023 16:55:48 -0700 To: FreeBSD Mailing List , " rust@freebsd.org " X-Mailer: Apple Mail (2.3731.400.51.1.1) References: <60DB02F8-CA05-4D2E-A564-DF20EFDF1E22.ref@yahoo.com> X-Spamd-Result: default: False [-3.27 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.77)[-0.774]; MV_CASE(0.50)[]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; TO_DN_EQ_ADDR_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; RCVD_IN_DNSWL_NONE(0.00)[98.137.64.206:from]; FREEMAIL_FROM(0.00)[yahoo.com]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; RCVD_COUNT_THREE(0.00)[3]; RCPT_COUNT_TWO(0.00)[2]; DKIM_TRACE(0.00)[yahoo.com:+]; MIME_TRACE(0.00)[0:+]; FROM_EQ_ENVFROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-ports@freebsd.org] X-Rspamd-Queue-Id: 4Q6t132zQ4z3PYD X-Spamd-Bar: --- X-ThisMailContainsUnwantedMimeParts: N This note is because clang (even in LLVM main) has somewhat incorrect default feature flags for -mcpu=3Dcortex-a78c and -mcpu=3Dcortex-x1c (the cores in the Windows Dev Kit 2023). Unfortunately it includes indicating a feature that does not exist on either type of core but is indicated for at least one type. (The details vary after clang15 but no version is fully right yet.) So, for now, use of -mcpu=3D (or related) for clang should also involve feature specifications, such as: -mcpu=3Dcortex-a78c+flagm+nofp16fml (Note: ARM documentation has "FEAT_FHM" for what clang and gcc call "fp16fml" . rust uses "fhm" instead of "fp16fml".) A rust equivalent is: -C target-cpu=3Dcortex-a78c -C target-feature=3D+a78c,+flagm,-fhm (I expect the "+a78c," is redundant, given the target-cpu assignment.) /usr/ports/Mk/Uses/cargo.mk is designed to translate the likes of -mcpu=3Dcortex-a78c into rust conventions via the likes of: . else RUSTFLAGS+=3D ${CFLAGS:M-mcpu=3D*:S/-mcpu=3D/-C target-cpu=3D/} But this only works for translating the likes of: -mcpu=3Dcortex-a78c Otherwise rust does not recognize the likes of: -C target-cpu=3Dcortex-a78c+flagm+nofp16fml But rust reports ignoring such instead of stopping. The result can end up incoherent overall. Not wishing to deal with general translation of feature naming and notation, I locally made the following change adding RUSTFLAGS_CPU_FEATURES allowing an independent way to supply the rust notation when the simpler handling does not work (whitespace details likely not fully preserved, so just suggestive): # git -C /usr/ports/ diff Mk/Uses/cargo.mk diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk index 76c27540f5d7..6c84f442ab34 100644 --- a/Mk/Uses/cargo.mk +++ b/Mk/Uses/cargo.mk @@ -145,7 +145,9 @@ WITH_LTO=3D yes . endif # Adjust -C target-cpu if -march/-mcpu is set by bsd.cpu.mk -. if ${ARCH} =3D=3D amd64 || ${ARCH} =3D=3D i386 +. if defined(RUSTFLAGS_CPU_FEATURES) +RUSTFLAGS+=3D ${RUSTFLAGS_CPU_FEATURES} +. elif ${ARCH} =3D=3D amd64 || ${ARCH} =3D=3D i386 RUSTFLAGS+=3D ${CFLAGS:M-march=3D*:S/-march=3D/-C target-cpu=3D/} . elif ${ARCH:Mpowerpc*} RUSTFLAGS+=3D ${CFLAGS:M-mcpu=3D*:S/-mcpu=3D/-C = target-cpu=3D/:S/power/pwr/} I'm using it in my experiments with port building via the likes of: # more /usr/local/etc/poudriere.d/main-CA78C-make.conf CFLAGS+=3D -mcpu=3Dcortex-a78c+flagm+nofp16fml CXXFLAGS+=3D -mcpu=3Dcortex-a78c+flagm+nofp16fml CPPFLAGS+=3D -mcpu=3Dcortex-a78c+flagm+nofp16fml RUSTFLAGS_CPU_FEATURES=3D -C target-cpu=3Dcortex-a78c -C = target-feature=3D+a78c,+flagm,-fhm =3D=3D=3D Mark Millard marklmi at yahoo.com