reference: 利用码云镜像快速拉取riscv-gnu-toolchain工具链
riscv-gnu-toolchain是riscv的gcc交叉编译工具链
github地址为:https://github.com/riscv/riscv-gnu-toolchain/tree/master
正常拉取的步骤为:
git clone git@github.com:riscv/riscv-gnu-toolchain.git
cd riscv-gnu-toolchain
git submodule update --init --recursive
但由于外网原因,往往会卡在拉取子模块的阶段(有时有梯子也挺慢的)。
这些子模块包括:
riscv-qemu
riscv-newlib(100MB)
riscv-binutils(394MB)
riscv-gdb(394MB)
riscv-dejagnu(3MB)
riscv-glibc(155MB)
riscv-gcc (1.3GB)
为了解决这个问题,可以拉取码云上的riscv-gnu-toolchain镜像。
码云地址为:https://gitee.com/mirrors/riscv-gnu-toolchain
git clone https://gitee.com/mirrors/riscv-gnu-toolchain
cd riscv-gnu-toolchain
然而码云上的子模块的地址仍然为github的地址,所以需要分别拉取其子模块在码云上的镜像。(虽然挺麻烦的,但总的来说还是挺快的)
riscv-newlib:https://gitee.com/mirrors/riscv-newlib
riscv-binutils:https://gitee.com/mirrors/riscv-binutils-gdb
riscv-gdb:https://gitee.com/mirrors/riscv-binutils-gdb(riscv-gdb和riscv-binutils为同一个仓库下的不同分支)
riscv-dejagnu:https://gitee.com/mirrors/riscv-dejagnu
riscv-glibc:https://gitee.com/mirrors/riscv-glibc
riscv-gcc:https://gitee.com/mirrors/riscv-gcc
需要注意的是,riscv-gnu-toolchain工具链下子模块拉取的不都是其主分支,我们可以通过其最近的一次commit来判断是那个分支,下图红框处:
这里我直接列出其子模块对应的分支:(工具链可能会更新,要使用最新版本大家自行切换具体分支)
riscv-binutils:riscv-binutils-2.35
riscv-dejagnu:master
riscv-gcc:riscv-gcc-10.2.0
riscv-gdb:fsf-gdb-10.1-with-sim
riscv-glibc:riscv-glibc-2.29
riscv-newlib:master
git clone https://gitee.com/mirrors/riscv-dejagnu
git clone -b riscv-gcc-10.2.0 https://gitee.com/mirrors/riscv-gcc
git clone -b riscv-glibc-2.29 https://gitee.com/mirrors/riscv-glibc
git clone https://gitee.com/mirrors/riscv-newlib
git clone -b riscv-binutils-2.35 https://gitee.com/mirrors/riscv-binutils-gdb riscv-binutils
git clone -b fsf-gdb-10.1-with-sim https://gitee.com/mirrors/riscv-binutils-gdb riscv-gdb