[Tool] centos toolchain upgrade binutils (#29694)
This commit is contained in:
parent
ce139461b2
commit
cea7b1af21
|
|
@ -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 && \
|
||||
|
|
|
|||
|
|
@ -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/*
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue