devel/glib20 build issue
Kristof Provost
kp at FreeBSD.org
Thu Nov 19 12:38:24 UTC 2020
On 19 Nov 2020, at 11:59, Dimitry Andric wrote:
> 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.
>
https://reviews.llvm.org/D91784
Best regards,
Kristof
More information about the freebsd-toolchain
mailing list