Description
I am using a Raspberry Pi 5 (64 bit) with OS release bookworm.
I first tried this:
git clone https://github.com/riscv/riscv-gnu-toolchain
./configure --prefix=/opt/riscv
make linux
Compile worked. But I had an error, when compiling my app source code:
(from https://github.com/hydrausb3 )
/opt/riscv/bin/riscv64-unknown-linux-gnu-gcc -march=rv32imac_zicsr -mabi=ilp32 -msmall-data-limit=8 -O3 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -DDEBUG=1 -I"../wch-ch56x-bsp/rvmsis" -I"../wch-ch56x-bsp/drv" -I"../wch-ch56x-bsp/board" -I"../wch-ch56x-bsp/usb/usb_devbulk" -I"./User" -std=gnu99 -MMD -MP -MT"build/core_riscv.o" -c -o "build/core_riscv.o" "../wch-ch56x-bsp/rvmsis/core_riscv.c"
In file included from /opt/riscv/sysroot/usr/include/features.h:527,
from /opt/riscv/sysroot/usr/include/bits/libc-header-start.h:33,
from /opt/riscv/sysroot/usr/include/stdint.h:26,
from /opt/riscv/lib/gcc/riscv64-unknown-linux-gnu/13.2.0/include/stdint.h:9,
from ../wch-ch56x-bsp/rvmsis/core_riscv.c:11:
/opt/riscv/sysroot/usr/include/gnu/stubs.h:8:11: fatal error: gnu/stubs-ilp32.h: No such file or directory
8 | # include <gnu/stubs-ilp32.h>
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:103: build/core_riscv.o] Error 1
trio@adapter-radio:~/risc-v/hydrausb3_fw_qmi/HydraUSB3_USB $
I assumed, I need something different:
make clean
./configure --prefix=/opt/riscv --with-arch=rv32gc --with-abi=ilp32
make linux
But after some time of compiling I got this (same!) error:
/home/trio/riscv-gnu-toolchain/build-gcc-linux-stage1/./gcc/xgcc -B/home/trio/riscv-gnu-toolchain/build-gcc-linux-stage1/./gcc/ -B/opt/riscv/riscv32-unknown-linux-gnu/bin/ -B/opt/riscv/riscv32-unknown-linux-gnu/lib/ -isystem /opt/riscv/riscv32-unknown-linux-gnu/include -isystem /opt/riscv/riscv32-unknown-linux-gnu/sys-include -O2 -mcmodel=medlow -O2 -O2 -mcmodel=medlow -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -fPIC -I. -I. -I../.././gcc -I../../.././gcc/libgcc -I../../.././gcc/libgcc/. -I../../.././gcc/libgcc/../gcc -I../../.././gcc/libgcc/../include -DHAVE_CC_TLS -fvisibility=hidden -DHIDE_EXPORTS -c eh_dummy.c
-o eh_dummy.o;
objects=eh_dummy.o;
fi;
/opt/riscv/riscv32-unknown-linux-gnu/bin/ar rc libgcc.a $objects
/opt/riscv/riscv32-unknown-linux-gnu/bin/ranlib libgcc.a
/home/trio/riscv-gnu-toolchain/build-gcc-linux-stage1/./gcc/xgcc -B/home/trio/riscv-gnu-toolchain/build-gcc-linux-stage1/./gcc/ -B/opt/riscv/riscv32-unknown-linux-gnu/bin/ -B/opt/riscv/riscv32-unknown-linux-gnu/lib/ -isystem /opt/riscv/riscv32-unknown-linux-gnu/include -isystem /opt/riscv/riscv32-unknown-linux-gnu/sys-include -O2 -mcmodel=medlow -O2 -O2 -mcmodel=medlow -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -fPIC -I. -I. -I../.././gcc -I../../.././gcc/libgcc -I../../.././gcc/libgcc/. -I../../.././gcc/libgcc/../gcc -I../../.././gcc/libgcc/../include -DHAVE_CC_TLS -o _gcov_merge_add.o -MT _gcov_merge_add.o -MD -MP -MF _gcov_merge_add.dep -DL_gcov_merge_add -c ../../.././gcc/libgcc/libgcov-merge.c
In file included from /opt/riscv/sysroot/usr/include/features.h:527,
from /opt/riscv/sysroot/usr/include/sys/mman.h:22,
from ../../.././gcc/libgcc/libgcov.h:49,
from ../../.././gcc/libgcc/libgcov-merge.c:26:
/opt/riscv/sysroot/usr/include/gnu/stubs.h:8:11: fatal error: gnu/stubs-ilp32.h: No such file or directory
8 | # include <gnu/stubs-ilp32.h>
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:924: _gcov_merge_add.o] Error 1
make[2]: Leaving directory '/home/trio/riscv-gnu-toolchain/build-gcc-linux-stage1/riscv32-unknown-linux-gnu/libgcc'
make[1]: *** [Makefile:12883: all-target-libgcc] Error 2
make[1]: Leaving directory '/home/trio/riscv-gnu-toolchain/build-gcc-linux-stage1'
make: *** [Makefile:434: stamps/build-gcc-linux-stage1] Error 2
trio@adapter-radio:~/riscv-gnu-toolchain $