GCC changes for Fedora + riscv64

Jim Wilson jimw@sifive.com
Mon Apr 9 19:29:00 GMT 2018


On 04/08/2018 08:22 AM, Jeff Law wrote:
> On 03/31/2018 12:27 PM, Richard W.M. Jones wrote:
>> I'd like to talk about what changes we (may) need to GCC in
>> Fedora to get it working on 64-bit RISC-V, and also (more
>> importantly) to ask your advice on things we don't fully
>> understand yet.  However, I don't know even what venue you'd
>> prefer to discuss this in.

A discussion here is fine with me.  I know of a few issues.

I have a work-in-progress --with-multilib-list patch in PR 84797 but it 
isn't quite right yet, and needs to work more like the patch in PR 
85142, which isn't OK to check in.

There is a problem with atomics.  We only have builtins for the ones 
that can be implemented with a single instruction.  Adding -latomic 
unconditionally might fix it, but won't work for gcc builds and the gcc 
testsuite unless we also add paths pointing into the libatomic build 
dir.  I'm also concerned that this might cause build problems, if we end 
up trying to link with libatomic before we have built it.  The simplest 
solution might be to just add expanders for all of the missing atomics, 
even if they require multiple instructions, just like how all of the 
mainstream linux targets currently work.

There is a problem with the linker not searching the right set of dirs 
by default.  That is more a binutils problem than a gcc problem, but the 
linker might need some help from gcc to fix it, as the linker doesn't 
normally take -march and -mabi options.

There is a problem with libffi, which has RISC-V support upstream, but 
not in the FSF GCC copy.  This is needed for go language support.  There 
was also a dispute about go something naming, as to whether it should be 
riscv64 or riscv, with one person doing a port choosing the former and 
another person doing another port choosing the latter.

Those are all of the Linux specific ones I can remember at the moment. 
I might have missed some.

Jim



More information about the Gcc mailing list