在oracle linux 6.7升级gcc,从4.4.7到5.2.0

来源:互联网 发布:java中什么是构造方法 编辑:程序博客网 时间:2024/06/01 08:24
[root@localhost /]# gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)


yum install -y libgcc glibc-static libstdc++-static gcc gcc-c++ gcc-java gcc-gfortran
#yum install -y gcc-gnat gcc-objc gcc-objc++ 


export GCC='gcc-5.2.0'
export GMP='gmp-4.3.2'
export MPFR='mpfr-2.4.2'
export MPC='mpc-0.8.1'
export ISL='isl-0.15'
export CLOOG='cloog-0.18.4'
export DEST='/usr/local/share'


cd $HOME
# ./contrib/download_prerequisites
wget ftp://ftp.gnu.org/gnu/gcc/${GCC}/${GCC}.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/${GMP}.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/${MPFR}.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/${MPC}.tar.gz
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/${ISL}.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/${PPL}.tar.gz
wget http://120.198.244.29:9999/www.bastoul.net/cloog/pages/download/${CLOOG}.tar.gz


tar -xjvf ${GCC}.tar.bz2
tar -xjvf ${GMP}.tar.bz2
tar -xjvf ${MPFR}.tar.bz2
tar -xzvf ${MPC}.tar.gz
tar -xjvf ${ISL}.tar.bz2
tar -xzvf ${CLOOG}.tar.gz


cd $HOME/${GMP}
./configure --prefix=${DEST}/${GMP} --enable-cxx
make && make install PACKAGE=${GMP} && make check PACKAGE=${GMP} && make clean
cat > /etc/ld.so.conf.d/gmp-x86_64.conf <<EOF
${DEST}/${GMP}/lib
EOF
ldconfig


cd $HOME/${MPFR}
./configure --prefix=${DEST}/${MPFR} --with-gmp=${DEST}/${GMP}
make && make install PACKAGE=${MPFR} && make check PACKAGE=${MPFR} && make clean
cat > /etc/ld.so.conf.d/mpfr-x86_64.conf <<EOF
${DEST}/${MPFR}/lib
EOF
ldconfig


cd $HOME/${MPC}
./configure --prefix=${DEST}/${MPC} --with-gmp=${DEST}/${GMP} --with-mpfr=${DEST}/${MPFR}
make && make install PACKAGE=${MPC} && make check PACKAGE=${MPC} && make clean
cat > /etc/ld.so.conf.d/mpc-x86_64.conf <<EOF
${DEST}/${MPC}/lib
EOF
ldconfig


cd $HOME/${ISL}
./configure --prefix=${DEST}/${ISL} --with-gmp-prefix=${DEST}/${GMP} 
make && make install PACKAGE=${ISL} && make check PACKAGE=${ISL} && make clean
cat > /etc/ld.so.conf.d/isl-x86_64.conf <<EOF
${DEST}/${ISL}/lib
EOF
ldconfig


cd $HOME/${CLOOG}
./configure --prefix=${DEST}/${CLOOG} --with-gmp=system --with-gmp-prefix=${DEST}/${GMP} \
--with-isl=system --with-isl-prefix=${DEST}/${ISL} 
make && make install PACKAGE=${CLOOG} && make check PACKAGE=${CLOOG} && make clean 
cat > /etc/ld.so.conf.d/cloog-x86_64.conf <<EOF
${DEST}/${CLOOG}/lib
EOF
ldconfig


cd $HOME/${GCC}
mkdir build
cd build
../configure --prefix=$DEST --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --disable-multilib \
--enable-shared --enable-threads=posix --with-gmp=${DEST}/${GMP} --with-mpfr=${DEST}/${MPFR} --with-mpc=${DEST}/${MPC} \
--with-isl=${DEST}/${ISL} --with-cloog=${DEST}/${CLOOG} --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux 
make -j4 && make install PACKAGE=${GCC} && make installcheck PACKAGE=${GCC} && make clean
cat > /etc/ld.so.conf.d/${GCC}.x86_64.conf <<EOF
${DEST}/${GCC}/lib64
EOF
ldconfig


#yum remove gcc
#yum remove gcc-c++


updatedb &


# cd /usr/bin
# ln -s ${DEST}/${GCC}/bin/gcc gcc
# ln -s ${DEST}/${GCC}/bin/gcc cc
# ln -s ${DEST}/${GCC}/bin/g++ g++
# ln -s ${DEST}/${GCC}/bin/g++ c++


cat >> /etc/profile <<EOF
PATH=${DEST}/${GCC}/bin:\$PATH
EOF
source /etc/profile


cat >> /etc/man.config <<EOF
MANPATH ${DEST}/${GCC}/share/man
EOF




[root@localhost ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=${DEST}/gcc-5.2.0/libexec/gcc/x86_64-unknown-linux-gnu/5.2.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /root/gcc-5.2.0/configure --prefix=${DEST}/gcc-5.2.0/ --disable-multilib
Thread model: posix
gcc version 5.2.0 (GCC)
0 0