[Tool] centos toolchain upgrade binutils (#29694)

This commit is contained in:
Kevin Cai 2023-08-23 12:45:42 +08:00 committed by GitHub
parent ce139461b2
commit cea7b1af21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 6 deletions

View File

@ -1,17 +1,21 @@
# Build toolchains on centos7, dev-env image can be built based on this image for centos7
# DOCKER_BUILDKIT=1 docker build --rm=true -f docker/dockerfiles/toolchains/centos7-toolchains.Dockerfile -t toolchains-centos7:latest docker/dockerfiles/toolchains/
# DOCKER_BUILDKIT=1 docker build --rm=true -f docker/dockerfiles/toolchains/toolchains-centos7.Dockerfile -t toolchains-centos7:latest docker/dockerfiles/toolchains/
ARG GCC_INSTALL_HOME=/opt/gcc/usr
ARG GCC_INSTALL_HOME=/opt/rh/gcc-toolset-10/root/usr
ARG GCC_DOWNLOAD_URL=https://ftp.gnu.org/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz
ARG CMAKE_INSTALL_HOME=/opt/cmake
ARG MAVEN_VERSION=3.6.3
ARG MAVEN_INSTALL_HOME=/opt/maven
# Can't upgrade to a later version, due to incompatible changes between 2.31 and 2.32
ARG BINUTILS_DOWNLOAD_URL=https://ftp.gnu.org/gnu/binutils/binutils-2.30.tar.bz2
FROM centos:centos7 as gcc-builder
FROM centos:centos7 as base-builder
RUN yum install -y gcc gcc-c++ make automake curl wget gzip gunzip zip bzip2 file texinfo && yum clean metadata
FROM base-builder as gcc-builder
ARG GCC_INSTALL_HOME
ARG GCC_DOWNLOAD_URL
RUN yum install -y gcc gcc-c++ make automake curl wget gzip gunzip zip bzip2 file texinfo && yum clean metadata
RUN mkdir -p /workspace/gcc && \
cd /workspace/gcc && \
wget --no-check-certificate $GCC_DOWNLOAD_URL -O ../gcc.tar.gz && \
@ -23,6 +27,17 @@ RUN cd /workspace/gcc && mkdir -p /workspace/installed && make DESTDIR=/workspac
strip /workspace/installed/${GCC_INSTALL_HOME}/bin/* /workspace/installed/${GCC_INSTALL_HOME}/libexec/gcc/*/*/{cc1,cc1plus,collect2,lto1}
FROM base-builder as binutils-builder
ARG BINUTILS_DOWNLOAD_URL
# build binutils and only install gnu as
RUN mkdir -p /workspace/binutils && \
cd /workspace/binutils && \
wget --no-check-certificate $BINUTILS_DOWNLOAD_URL -O ../binutils.tar.bz2 && \
tar -xjf ../binutils.tar.bz2 --strip-components=1 && \
./configure --prefix=/usr && \
make -j `nproc` && \
mkdir -p /workspace/installed && cd gas && make DESTDIR=/workspace/installed install
FROM centos:centos7
ARG GCC_INSTALL_HOME
@ -38,6 +53,8 @@ RUN yum install -y epel-release && yum install -y wget unzip bzip2 patch bison b
# install gcc
COPY --from=gcc-builder /workspace/installed/ /
# install binutils
COPY --from=binutils-builder /workspace/installed/ /
# install cmake
RUN ARCH=`uname -m` && mkdir -p $CMAKE_INSTALL_HOME && cd $CMAKE_INSTALL_HOME && \
curl -s -k https://cmake.org/files/v3.22/cmake-3.22.4-linux-${ARCH}.tar.gz | tar -xzf - --strip-components=1 && \

View File

@ -7,7 +7,7 @@ FROM ubuntu:22.04
RUN apt-get update -y && \
apt-get install --no-install-recommends -y \
automake binutils-dev bison byacc ccache flex libiberty-dev libtool maven zip python3 python-is-python3 make cmake gcc g++ default-jdk git patch lld bzip2 \
wget unzip curl vim tree net-tools openssh-client && \
wget unzip curl vim tree net-tools openssh-client xz-utils && \
DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata && \
rm -rf /var/lib/apt/lists/*