Re: Problem with cc in native build
- Reply: Dennis Clarke : "Re: Problem with cc in native build"
- In reply to: Dennis Clarke : "Re: Problem with cc in native build"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 14 Jun 2025 11:38:18 UTC
On Sat, 14 Jun 2025 07:29:58 -0400 Dennis Clarke <dclarke@blastwave.org> wrote: > On 6/14/25 07:08, Milan Obuch wrote: > > On Sat, 14 Jun 2025 12:50:11 +0200 > > Michael Tuexen <tuexen@FreeBSD.org> wrote: > > > >>> On 14. Jun 2025, at 11:29, Milan Obuch <freebsd-riscv@dino.sk> > >>> wrote: > >>> > >>> Hi, > >>> > >>> I did native build on Star64, but there is something wrong with cc > >>> binary generated. > >>> > >>> I started with sme snapshot > >>> from ftp.freebsd.org, then I did all the usual steps (make buildworld, make buildkernel, make installkernel, > >>> make installworld), as I do on other systems when doing full > >>> source based upgrade. > >>> > >>> That seemingly went OK, I can boot newly boot system and check > >>> devices, interfaces,files, etc. Now, I tried another buildkernel > >>> to test some changes, but that failed. The error was (at stage > >>> 3.1: building everything, on first cc invocation) > >>> > >>> cc -target riscv64-unknown-freebsd15.0 > >>> --sysroot=/usr/obj/usr/src/riscv.riscv64/tmp > >>> -B/usr/obj/usr/src/riscv.riscv64/tmp/usr/bin -c -O2 -pipe > >>> -fno-strict-aliasing -g -nostdinc -I. -I/usr/src/sys > >>> -I/usr/src/sys/contrib/ck/include -I/usr/src/sys/contrib/libfdt > >>> -I/usr/src/sys/contrib/device-tree/include -D_KERNEL > >>> -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fPIE > >>> -fno-omit-frame-pointer -fno-optimize-sibling-calls -MD > >>> -MF.depend.genoffset.o -MTgenoffset.o > >>> -fdebug-prefix-map=./machine=/usr/src/sys/riscv/include > >>> -march=rv64imafdch -mabi=lp64 -mno-relax -ffreestanding -fwrapv > >>> -fstack-protector -gdwarf-4 -Wall -Wstrict-prototypes > >>> -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef > >>> -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ > >>> -Wmissing-include-dirs -fdiagnostics-show-option > >>> -Wno-unknown-pragmas -Wswitch -Wno-error=tautological-compare > >>> -Wno-error=empty-body -Wno-error=parentheses-equality > >>> -Wno-error=unused-function -Wno-error=pointer-sign > >>> -Wno-error=shift-negative-value -Wno- address-of-packed-member > >>> -Wno-format-zero-length -mcmodel=medium -std=gnu17 -fcommon > >>> /usr/src/sys/kern/genoffset.c error: unable to create target: 'No > >>> available targets are compatible with triple > >>> "riscv64-unknown-freebsd15.0"' 1 error generated. *** Error code 1 > >>> > >>> I do not understand the issue, but trying > >>> > >>> # cc -print-target-triple > >>> riscv64-unknown-freebsd15.0 > >>> > >>> looks OK, however > >>> > >>> # cc -print-targets > >>> > >>> Registered Targets: > >>> arm - ARM > >>> armeb - ARM (big endian) > >>> thumb - Thumb > >>> thumbeb - Thumb (big endian) > >>> > >>> probably means cc as built cannot actually compile for riscv > >>> arch... > >>> > >>> Did anybody tried building FreeBSD natively on some RiscV > >>> platform? I think this is some kind of oversight in build > >>> process, but really fatal one... > >> I am building FreeBSD on a RiscV board (HiFive Unmatched Rev B). > >> The last time a month ago or so. > >> I get > >> tuexen@riscv:~ % cc -print-target-triple > >> riscv64-unknown-freebsd15.0 > >> tuexen@riscv:~ % cc -print-targets > >> > >> Registered Targets: > >> aarch64 - AArch64 (little endian) > >> aarch64_32 - AArch64 (little endian ILP32) > >> aarch64_be - AArch64 (big endian) > >> arm - ARM > >> arm64 - ARM64 (little endian) > >> arm64_32 - ARM64 (little endian ILP32) > >> armeb - ARM (big endian) > >> ppc32 - PowerPC 32 > >> ppc32le - PowerPC 32 LE > >> ppc64 - PowerPC 64 > >> ppc64le - PowerPC 64 LE > >> riscv32 - 32-bit RISC-V > >> riscv64 - 64-bit RISC-V > >> thumb - Thumb > >> thumbeb - Thumb (big endian) > >> x86 - 32-bit X86: Pentium-Pro and above > >> x86-64 - 64-bit X86: EM64T and AMD64 > >> > >> Let me trigger a new build. > >> > > > > Great. I did use sources from June 1st, git hash 66c2e68076bd. > > > > But I just found the issue... My /etc/src.conf is the culprit > > What do you have in /etc/src.conf ? > > Here I have disabled a pile of things I will never use or want on a > SiFive UnMatched Rev B board : > > enceladus$ cat /etc/src.conf > WITH_CCACHE_BUILD=yes > CCACHE_DIR=/var/cache/ccache/ > > WITH_REPRODUCIBLE_BUILD=yes > > WITHOUT_AMD=yes > WITHOUT_ATM=yes > WITHOUT_AUDIT=yes > WITHOUT_AUTOFS=yes > WITHOUT_BLUETOOTH=yes > WITHOUT_BOOTPARAMD=yes > WITHOUT_BOOTPD=yes > WITHOUT_BSNMP=yes > WITHOUT_CALENDAR=yes > WITHOUT_CCD=yes > WITHOUT_CTF=yes > WITHOUT_CXGBETOOL=yes > WITHOUT_DIALOG=yes > WITHOUT_DICT=yes > WITHOUT_DTRACE_TESTS=yes > WITHOUT_DTRACE=yes > WITHOUT_EE=yes > WITHOUT_EXAMPLES=yes > WITHOUT_FINGER=yes > WITHOUT_FLOPPY=yes > WITHOUT_FREEBSD_UPDATE=yes > WITHOUT_FTP=yes > WITHOUT_GAMES=yes > WITHOUT_GCOV=yes > WITHOUT_GNU_DIFF=yes > WITHOUT_GOOGLETEST=yes > WITHOUT_HTML=yes > WITHOUT_HYPERV=yes > WITHOUT_IPFILTER=yes > WITHOUT_IPFW=yes > WITHOUT_KERBEROS_SUPPORT=yes > WITHOUT_KERBEROS=yes > WITHOUT_LIB32=yes > WITHOUT_LPR=yes > WITHOUT_MAN_UTILS=yes > WITHOUT_NDIS=yes > WITHOUT_NIS=yes > WITHOUT_PMC=yes > WITHOUT_PORTSNAP=yes > WITHOUT_PPP=yes > WITHOUT_PROFILE=yes > WITHOUT_QUOTAS=yes > WITHOUT_RBOOTD=yes > WITHOUT_ROUTED=yes > WITHOUT_SHAREDOCS=yes > WITHOUT_SVNLITE=yes > WITHOUT_TALK=yes > WITHOUT_TELNET=yes > WITHOUT_TESTS=yes > WITHOUT_TFTP=yes > WITHOUT_WIRELESS_SUPPORT=yes > WITHOUT_WIRELESS=yes > enceladus$ > > The only other change is that sys/riscv/conf/GENERIC has the line : > > options COMPAT_FREEBSD11 # Compatible with > FreeBSD11 > > Strictly for the situation with lang/rust which will likely never get > fixed. > > So I am curious what you have in your /etc/src.conf file. > WITHOUT_LLVM_TARGET_RISCV=YES is my problem. I did blindly copy it from src.conf intended for ARM build, where it does make no nonsense :) I just somehow overlooked it. Thanks for your src.conf, I'll look if I can add some bits in my build (main idea is to conserve some time when building...). Regards, Milan