riscv-gnu-toolchain 编译出 riscv64-unknown-linux-gnu-gcc

祁乐邦
2023-12-01
参考https://zhuanlan.zhihu.com/p/258394849
$ mkdir ~/work/riscv64-linux -p
$ sudo mkdir /opt/riscv64
$ cd ~/work/riscv64-linux
$ git clone https://gitee.com/mirrors/riscv-gnu-toolchain
$ cd riscv-gnu-toolchain
$ git rm qemu
$ git submodule update --init --recursive
$ echo $?
$ ./configure --prefix=/opt/riscv64 2>&1 | tee log_config
$ echo $?
$ sudo make linux 2>&1 | tee log_build
$ echo $?
$ export PATH="$PATH:/opt/riscv64/bin"
$ riscv64-unknown-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=riscv64-unknown-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/opt/riscv64/libexec/gcc/riscv64-unknown-linux-gnu/11.1.0/lto-wrapper
Target: riscv64-unknown-linux-gnu
Configured with: /home/suweishuai/work/riscv64-linux/riscv-gnu-toolchain/riscv-gcc/configure --target=riscv64-unknown-linux-gnu --prefix=/opt/riscv64 --with-sysroot=/opt/riscv64/sysroot --with-pkgversion=g --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=.././riscv-gcc --disable-multilib --with-abi=lp64d --with-arch=rv64imafdc --with-tune=rocket --with-isa-spec=2.2 'CFLAGS_FOR_TARGET=-O2   -mcmodel=medlow' 'CXXFLAGS_FOR_TARGET=-O2   -mcmodel=medlow'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.1.0 (g) 
$ which riscv64-unknown-linux-gnu-gcc 
/opt/riscv64/bin/riscv64-unknown-linux-gnu-gcc

$ ls /opt/riscv64/bin/
riscv64-unknown-linux-gnu-addr2line   riscv64-unknown-linux-gnu-gdb
riscv64-unknown-linux-gnu-ar          riscv64-unknown-linux-gnu-gdb-add-index
riscv64-unknown-linux-gnu-as          riscv64-unknown-linux-gnu-gfortran
riscv64-unknown-linux-gnu-c++         riscv64-unknown-linux-gnu-gprof
riscv64-unknown-linux-gnu-c++filt     riscv64-unknown-linux-gnu-ld
riscv64-unknown-linux-gnu-cpp         riscv64-unknown-linux-gnu-ld.bfd
riscv64-unknown-linux-gnu-elfedit     riscv64-unknown-linux-gnu-lto-dump
riscv64-unknown-linux-gnu-g++         riscv64-unknown-linux-gnu-nm
riscv64-unknown-linux-gnu-gcc         riscv64-unknown-linux-gnu-objcopy
riscv64-unknown-linux-gnu-gcc-11.1.0  riscv64-unknown-linux-gnu-objdump
riscv64-unknown-linux-gnu-gcc-ar      riscv64-unknown-linux-gnu-ranlib
riscv64-unknown-linux-gnu-gcc-nm      riscv64-unknown-linux-gnu-readelf
riscv64-unknown-linux-gnu-gcc-ranlib  riscv64-unknown-linux-gnu-run
riscv64-unknown-linux-gnu-gcov        riscv64-unknown-linux-gnu-size
riscv64-unknown-linux-gnu-gcov-dump   riscv64-unknown-linux-gnu-strings
riscv64-unknown-linux-gnu-gcov-tool   riscv64-unknown-linux-gnu-strip
$ riscv64-unknown-linux-gnu-gcc -Q --help=target
The following options are target specific:
  -mabi=                                lp64d
  -malign-data=                         xlen
  -march=                               rv64imafdc
  -mbig-endian                          [disabled]
  -mbionic                              [disabled]
  -mbranch-cost=N                       3
  -mcmodel=                             medlow
  -mcpu=PROCESSOR             
  -mdiv                                 [enabled]
  -mexplicit-relocs                     [enabled]
  -mfdiv                                [enabled]
  -mglibc                               [enabled]
  -misa-spec=                           2.2
  -mlittle-endian                       [enabled]
  -mmusl                                [disabled]
  -mplt                                 [enabled]
  -mpreferred-stack-boundary=           0
  -mrelax                               [enabled]
  -mriscv-attribute                     [disabled]
  -msave-restore                        [disabled]
  -mshorten-memrefs                     [enabled]
  -msmall-data-limit=N                  8
  -mstack-protector-guard-offset= 
  -mstack-protector-guard-reg= 
  -mstack-protector-guard=              global
  -mstrict-align                        [enabled]
  -mtune=PROCESSOR                      rocket
  -muclibc                              [disabled]

  Supported ABIs (for use with the -mabi= option):
    ilp32 ilp32d ilp32e ilp32f lp64 lp64d lp64f

  Known code models (for use with the -mcmodel= option):
    medany medlow

  Supported ISA specs (for use with the -misa-spec= option):
    2.2 20190608 20191213

  Known data alignment choices (for use with the -malign-data= option):
    natural xlen

  Valid arguments to -mstack-protector-guard=:
    global tls
 类似资料: