Date: Thu, 19 Nov 2020 11:57:45 +0100 From: "Kristof Provost" <kp@FreeBSD.org> To: freebsd-riscv@freebsd.org, toolchain@freebsd.org Subject: devel/glib20 build issue Message-ID: <54177870-E411-4DF1-901E-94FE7E5F553F@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
Hi,
While trying to build assorted ports on RISC-V I found that devel/glib20
doesn’t build.
It turns out to be due to a missing __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
define. That define is implicitly set by the toolchain. Or, at least, it
is on other platforms (ARM, MIPS, x86, …), but not on RISC-V.
That’s likely just been forgotten. The following toolchain patch fixes
that for me:
diff --git a/contrib/llvm-project/clang/lib/Basic/Targets/RISCV.cpp
b/contrib/llvm-project/clang/lib/Basic/Targets/RISCV.cpp
index 4ba703c8dd1..73f1b5bc446 100644
--- a/contrib/llvm-project/clang/lib/Basic/Targets/RISCV.cpp
+++ b/contrib/llvm-project/clang/lib/Basic/Targets/RISCV.cpp
@@ -115,8 +115,14 @@ void RISCVTargetInfo::getTargetDefines(const
LangOptions &Opts,
Builder.defineMacro("__riscv_muldiv");
}
- if (HasA)
+ if (HasA) {
Builder.defineMacro("__riscv_atomic");
+ Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
+ Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
+ Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
+ if (Is64Bit)
+ Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+ }
if (HasF || HasD) {
Builder.defineMacro("__riscv_flen", HasD ? "64" : "32");
Best regards,
Kristof
From owner-freebsd-toolchain@freebsd.org Thu Nov 19 11:00:02 2020
Return-Path: <owner-freebsd-toolchain@freebsd.org>
Delivered-To: freebsd-toolchain@mailman.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
by mailman.nyi.freebsd.org (Postfix) with ESMTP id B037A2EF45C
for <freebsd-toolchain@mailman.nyi.freebsd.org>;
Thu, 19 Nov 2020 11:00:02 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from mailman.nyi.freebsd.org (mailman.nyi.freebsd.org
[IPv6:2610:1c1:1:606c::50:13])
by mx1.freebsd.org (Postfix) with ESMTP id 4CcGst4Vqnz4X0P
for <freebsd-toolchain@freebsd.org>; Thu, 19 Nov 2020 11:00:02 +0000 (UTC)
(envelope-from dim@FreeBSD.org)
Received: by mailman.nyi.freebsd.org (Postfix)
id 9A9772EF3EE; Thu, 19 Nov 2020 11:00:02 +0000 (UTC)
Delivered-To: toolchain@mailman.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A4D02EF68C;
Thu, 19 Nov 2020 11:00:02 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from smtp.freebsd.org (smtp.freebsd.org
[IPv6:2610:1c1:1:606c::24b:4])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
client-signature RSA-PSS (4096 bits) client-digest SHA256)
(Client CN "smtp.freebsd.org",
Issuer "Let's Encrypt Authority X3" (verified OK))
by mx1.freebsd.org (Postfix) with ESMTPS id 4CcGst3zVnz4XCl;
Thu, 19 Nov 2020 11:00:02 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from tensor.andric.com (tensor.andric.com [IPv6:2001:470:7a58:1::1])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256
bits)) (Client CN "tensor.andric.com",
Issuer "Let's Encrypt Authority X3" (verified OK))
(Authenticated sender: dim)
by smtp.freebsd.org (Postfix) with ESMTPSA id 63A18253E;
Thu, 19 Nov 2020 11:00:02 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from [IPv6:2001:470:7a58::ddb6:52b3:5324:ad75] (unknown
[IPv6:2001:470:7a58:0:ddb6:52b3:5324:ad75])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by tensor.andric.com (Postfix) with ESMTPSA id 742823BF84;
Thu, 19 Nov 2020 12:00:00 +0100 (CET)
From: Dimitry Andric <dim@FreeBSD.org>
Message-Id: <3BC510E6-F7FC-4341-B715-66472F3640BF@FreeBSD.org>
Content-Type: multipart/signed;
boundary="Apple-Mail=_BBB198F4-0674-436A-B4A4-0177245C3ECD";
protocol="application/pgp-signature"; micalg=pgp-sha1
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\))
Subject: Re: devel/glib20 build issue
Date: Thu, 19 Nov 2020 11:59:52 +0100
In-Reply-To: <54177870-E411-4DF1-901E-94FE7E5F553F@FreeBSD.org>
Cc: freebsd-riscv@freebsd.org,
toolchain@freebsd.org
To: Kristof Provost <kp@freebsd.org>
References: <54177870-E411-4DF1-901E-94FE7E5F553F@FreeBSD.org>
X-Mailer: Apple Mail (2.3445.104.17)
X-BeenThere: freebsd-toolchain@freebsd.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: Maintenance of FreeBSD's integrated toolchain
<freebsd-toolchain.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-toolchain>,
<mailto:freebsd-toolchain-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-toolchain/>
List-Post: <mailto:freebsd-toolchain@freebsd.org>
List-Help: <mailto:freebsd-toolchain-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain>,
<mailto:freebsd-toolchain-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2020 11:00:02 -0000
--Apple-Mail=_BBB198F4-0674-436A-B4A4-0177245C3ECD
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8
On 19 Nov 2020, at 11:57, Kristof Provost <kp@freebsd.org> wrote:
>=20
> While trying to build assorted ports on RISC-V I found that =
devel/glib20 doesn=E2=80=99t build.
> It turns out to be due to a missing __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 =
define. That define is implicitly set by the toolchain. Or, at least, it =
is on other platforms (ARM, MIPS, x86, =E2=80=A6), but not on RISC-V.
>=20
> That=E2=80=99s likely just been forgotten. The following toolchain =
patch fixes that for me:
>=20
> diff --git =
a/contrib/llvm-project/clang/lib/Basic/Targets/RISCV.cpp =
b/contrib/llvm-project/clang/lib/Basic/Targets/RISCV.cpp
> index 4ba703c8dd1..73f1b5bc446 100644
> --- a/contrib/llvm-project/clang/lib/Basic/Targets/RISCV.cpp
> +++ b/contrib/llvm-project/clang/lib/Basic/Targets/RISCV.cpp
> @@ -115,8 +115,14 @@ void =
RISCVTargetInfo::getTargetDefines(const LangOptions &Opts,
> Builder.defineMacro("__riscv_muldiv");
> }
>=20
> - if (HasA)
> + if (HasA) {
> Builder.defineMacro("__riscv_atomic");
> + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
> + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
> + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
> + if (Is64Bit)
> + =
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
> + }
>=20
> if (HasF || HasD) {
> Builder.defineMacro("__riscv_flen", HasD ? "64" : "32");
Hi Kristof,
Can you please submit this upstream? We already have way too many =
gratuitous RISC-V differences that haven't been upstreamed.
-Dimitry
--Apple-Mail=_BBB198F4-0674-436A-B4A4-0177245C3ECD
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.2
iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCX7ZQKAAKCRCwXqMKLiCW
oz8cAKCC1VgYAsriB+cH9d8VuiO1yyUeRwCg/IjknkmfZO0EqPmAWi8l88lyZzw=
=5Haa
-----END PGP SIGNATURE-----
--Apple-Mail=_BBB198F4-0674-436A-B4A4-0177245C3ECD--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54177870-E411-4DF1-901E-94FE7E5F553F>
