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