[RFC] perf: fix building for ARCv1
Vineet Gupta
vgupta at synopsys.com
Tue Feb 9 19:09:43 PST 2016
On Friday 05 February 2016 09:40 PM, acme at redhat.com wrote:
> Em Fri, Feb 05, 2016 at 11:18:52AM +0000, Noam Camus escreveu:
>> Well here for EZchip I also see the:
>> undefined reference to `__sync_add_and_fetch_4'
>> undefined reference to `__sync_sub_and_fetch_4'
>
> Yeah, because there is no: tools/arch/arc/include/asm/atomic.h, can't
> you guys adapt arch/arc/include/asm/atomic.h to use in userspace?
Sure - however we need to support 3 variants: LLSC, !LLSC, EZCHIP
If needed, latter 2 could be done using a new atomic assist syscall
I presume kernel Kconfig items are no go in this header so this diversity
management needs to use toolchain defined macros e.g. __ezchip__
>
> - Arnaldo
>
>> This is since at file tools/include/asm/atomic.h we use the generic implementation
>> If for ARC I could use just like x86 my own header file then functions like:
>> atomic_inc()
>> atomic_dec_and_test()
>> Are easy to implement and you may see an example for such atomic methods in my patch set for the new platform.
>>
>> You however wants to use some GCC flag -matomic which I assume somehow will implement the above __sync*.
>> I can't find the implementation but if it uses LLSC then it won't work for me since I am not supporting LLSC.
>
>> So seem that either I have my own header at kernel or that I need to
>> change the GCC implementation for __sync* to use my atomic
>> instructions. I am personally tend to the x86 solution and not the
>> generic one since changing GCC will require to have new compiler
>> dependency.
More information about the linux-snps-arc
mailing list