Merge branch 'master' into centos7-build #62
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build for CentOS 7 | |
on: | |
push: | |
branches: | |
- centos7-build | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
container: | |
image: centos:7 | |
volumes: | |
- /opt/:/opt/ | |
- /usr/share/:/host/usr/share/ | |
- /usr/local/lib/:/host/usr/local/lib/ | |
steps: | |
- name: Remove unneeded frameworks to recover disk space | |
run: | | |
rm -rf /host/usr/share/dotnet | |
rm -rf /host/usr/local/lib/android | |
- name: Update and install build tools | |
# Add python-devel to support python in gdb. | |
# actions/checkout@v3 requires git >= 2.18 | |
run: | | |
yum -y update | |
yum -y install \ | |
centos-release-scl \ | |
https://repo.ius.io/ius-release-el7.rpm \ | |
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm | |
yum -y install \ | |
autoconf automake python3 libmpc-devel mpfr-devel gmp-devel gawk \ | |
bison flex texinfo patchutils zlib-devel expat-devel \ | |
python-devel \ | |
ninja-build dtc glib2-devel \ | |
devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-make \ | |
git236-core rh-python38 | |
curl -Lo cmake.sh https://github.com/Kitware/CMake/releases/download/v3.28.0/cmake-3.28.0-linux-x86_64.sh && \ | |
chmod +x cmake.sh && \ | |
./cmake.sh --skip-license --prefix=/usr && \ | |
rm -f cmake.sh | |
- uses: actions/checkout@v3 | |
- name: Checkout submodules | |
run: | | |
git config --global --add safe.directory ${GITHUB_WORKSPACE} | |
git submodule init binutils gcc gdb glibc newlib qemu spike | |
git submodule update --recursive --progress --depth=1 -j 0 | |
- name: Configure Newlib toolchain | |
run: | | |
scl enable devtoolset-11 -- \ | |
./configure --prefix=/opt/riscv --enable-libsanitizer --with-cmodel=medany | |
- name: Build Newlib toolchain | |
run: scl enable devtoolset-11 -- make -j $(nproc) | |
- name: Build QEMU | |
run: scl enable devtoolset-11 rh-python38 -- make -j $(nproc) build-sim SIM=qemu | |
- name: Build Spike | |
run: scl enable devtoolset-11 -- make -j $(nproc) build-sim SIM=spike | |
- name: Clean temporary files to free up space | |
run: make clean | |
- name: Configure Linux toolchain | |
run: | | |
scl enable devtoolset-11 -- \ | |
./configure --prefix=/opt/riscv --enable-llvm --with-cmodel=medany | |
- name: Build Linux toolchain | |
run: scl enable devtoolset-11 -- make -j $(nproc) linux | |
- name: Clean temporary files to free up space | |
run: make clean | |
- name: Create tarball | |
# WARNING each xz thread consumes nearly 1 GB of memory | |
run: XZOPT=-T0 tar -cJvf /opt/rv-gnu-toolchain-centos7.txz -C /opt/ riscv/ | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: toolchain-for-centos7 | |
path: /opt/rv-gnu-toolchain-centos7.txz |