devel/glib20 build issue
Dimitry Andric
dim at FreeBSD.org
Thu Nov 19 11:00:02 UTC 2020
On 19 Nov 2020, at 11:57, Kristof Provost <kp at freebsd.org> wrote:
>
> 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");
Hi Kristof,
Can you please submit this upstream? We already have way too many gratuitous RISC-V differences that haven't been upstreamed.
-Dimitry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 223 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.freebsd.org/pipermail/freebsd-toolchain/attachments/20201119/74d19177/attachment.sig>
More information about the freebsd-toolchain
mailing list