[sw-dev] GCC 8.x or 9.x for FreeBSD rv64imafdc ??
Dennis Clarke
dclarke at blastwave.org
Wed Nov 27 22:49:26 UTC 2019
On 11/27/19 1:59 PM, Ruslan Bukin wrote:
> The gcc we use is not old, but 8.3.0:
> http://svn.freebsd.org/ports/head/devel/riscv64-gcc/Makefile
>
Thank you for the reply here as I was hoping to hear from you.
> We have an official way of cross building native toolchain using base/gcc port and instructions: http://svn.freebsd.org/ports/head/base/README.
> This port is outdated a bit (GCC 6.4) and requires an update (won't work for riscv currently).
>
I have tried a few methods with varying degrees of success and more
recently with consistent success.
However the absence of a native compiler may as well reduce the whole
idea to nothing but ashes. However I may be wrong as I am told that
clang is now being built in the buildworld process. I can tell you that
I have tried the RISC-V projects gnu-toolchain gcc and the results are
promising :
vesta#
vesta# uname -apKU
FreeBSD vesta 12.1-RELEASE-p1 FreeBSD 12.1-RELEASE-p1 GENERIC amd64
amd64 1201000 1201000
vesta# /opt/rv64/tools/bin/riscv64-unknown-elf-gcc --version
riscv64-unknown-elf-gcc (GCC) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
vesta#
So that is 9.2.0 from https://github.com/riscv/riscv-gnu-toolchain and
we can buildworld but not build the kernel. I find that curious.
However I do see in my $DESTDIR a clang :
vesta# ls -lap $DESTDIR/usr/bin/cl*
-r-xr-xr-x 3 root wheel 63383544 Nov 26 08:00
/opt/rv64/rootfs/usr/bin/clang
-r-xr-xr-x 3 root wheel 63383544 Nov 26 08:00
/opt/rv64/rootfs/usr/bin/clang-cpp
-r-xr-xr-x 1 root wheel 865912 Nov 26 08:00
/opt/rv64/rootfs/usr/bin/clang-tblgen
-r-xr-xr-x 3 root wheel 63383544 Nov 26 08:00
/opt/rv64/rootfs/usr/bin/clang++
-r-xr-xr-x 1 root wheel 1750 Nov 26 08:00
/opt/rv64/rootfs/usr/bin/clear
vesta#
vesta# file /opt/rv64/rootfs/usr/bin/clang
/opt/rv64/rootfs/usr/bin/clang: ELF 64-bit LSB executable, UCB RISC-V,
version 1 (SYSV), dynamically linked, interpreter /libexec/ld-elf.so.1,
FreeBSD-style, for FreeBSD 13.0 (1300061), stripped
vesta#
vesta#
vesta# readelf -delV /opt/rv64/rootfs/usr/bin/clang
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: RISC-V
Version: 0x1
Entry point address: 0x6d48a
Start of program headers: 64 (bytes into file)
Start of section headers: 63381560 (bytes into file)
Flags: 0x5, RVC, double-float ABI
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 8
Size of section headers: 64 (bytes)
Number of section headers: 31
Section header string table index: 30
.
.
.
etc etc.
However for the kernel I must use the cross tools from ports :
vesta#
vesta# /usr/local/bin/riscv64-unknown-freebsd12.0-gcc --version
riscv64-unknown-freebsd12.0-gcc (FreeBSD Ports Collection for riscv64) 8.1.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
vesta#
However the only gcc that I have in the native RISC-V FreeBSD world
is the one you cooked up in your homedir a while ago.
I will try for a bootstrap of 9.2.0 natively today or tomorrow and
with some effort maybe report back a result of some value.
> On Tue, Nov 26, 2019 at 02:18:35AM -0800, Bruce Hoult wrote:
>> I think there are very few people who have experience with the
>> intersection of FreeBSD and RISC-V.
So very true and yet I have had good results on RISC-V with FreeBSD
and even ZFS ZPools however what the world desperately needs is a
machine with real DDR4 memory slots and some SAS/SATA ports or at
the very least a few PCI slots for storage controllers. We just are
not there and the money needed for a 9nm solution is $300M or so.
I don't think a FPGA is the way to go here.
--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
UNIX and Linux spoken
GreyBeard and suspenders optional
More information about the freebsd-riscv
mailing list