Opened 10 years ago

Last modified 9 years ago

#1019 closed task

GCC 5.2 — at Version 7

Reported by: William Harrington Owned by: clfs-commits@…
Priority: major Milestone: CLFS Standard 3.1.0
Component: BOOK Version: CLFS Standard GIT
Keywords: GCC 5.2 Cc: berzerkula@…, jonathan@…, chris@…

Description (last modified by William Harrington)

New Major Release 5.2

https://gcc.gnu.org/ml/gcc-announce/2015/msg00003.html

Download: http://ftp.gnu.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2

The Graphite framework for loop optimizations no longer requires the CLooG library, only ISL. The installation manual contains more information about requirements to build GCC.

There will be some configure changes and possibly toolchain changes. The patches for pure64bit and multilib will need to be edited.

Change History (11)

comment:1 by William Harrington, 10 years ago

Version: CLFS Standard 3.1.0CLFS Standard GIT

comment:2 by William Harrington, 10 years ago

Description: modified (diff)

comment:3 by William Harrington, 10 years ago

Work in progress

May want to disable bootstrap for each build. There are branch updates we will want to include. 5.2.0 is fine for a stable release but there are critical issues that we need to follow with each release as usual.

Section 5.13 GCC 5.2.0 static

AR=ar LDFLAGS="-Wl,-rpath,/cross-tools/lib" ../gcc-5.2.0/configure \
    --prefix=/cross-tools --build=${CLFS_HOST} --host=${CLFS_HOST} --target=${CLFS_TARGET} \
    --with-sysroot=${CLFS} --with-glibc-version=2.11 --with-local-prefix=/tools \
    --with-native-system-header-dir=/tools/include --disable-nls --disable-shared \
    --with-mpfr=/cross-tools --with-gmp=/cross-tools --with-isl=/cross-tools \
    --with-mpc=/cross-tools -without-headers --with-newlib --disable-multilib \
    --disable-decimal-float --disable-threads --disable-libatomic --disable-libgomp \
    --disable-libitm --disable-libquadmath --disable-libsanitizer --disable-libssp \
    --disable-libvtv --disable-libcilkrts --disable-libstdc++-v3 --with-system-zlib \
    --enable-languages=c --enable-checking=release --disable-bootstrap

Section 5.15 GCC 5.2.0 Final:

AR=ar LDFLAGS="-Wl,-rpath,/cross-tools/lib" ../gcc-5.2.0/configure --prefix=/cross-tools \
    --build=${CLFS_HOST} --target=${CLFS_TARGET} --host=${CLFS_HOST} --with-sysroot=${CLFS} \
    --with-local-prefix=/tools --with-native-system-header-dir=/tools/include --disable-nls \
    --disable-static --enable-languages=c,c++ --disable-multilib --with-mpc=/cross-tools \
    --with-mpfr=/cross-tools --with-gmp=/cross-tools --with-isl=/cross-tools --with-system-zlib \
    --enable-checking=release --disable-bootstrap

Section 6.10 Temp System GCC 5.2.0:

cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
`dirname $($CLFS_TARGET-gcc -print-libgcc-file-name)`/include-fixed/limits.h
../gcc-5.2.0/configure --prefix=/tools --build=${CLFS_HOST} --host=${CLFS_TARGET} \
    --target=${CLFS_TARGET} --with-local-prefix=/tools --disable-multilib \
    --with-native-system-header-dir=/tools/include --enable-languages=c,c++ \
    --disable-libstdcxx-pch --with-system-zlib --enable-checking=release \
    --enable-libstdcxx-time --disable-bootstrap

remove sed for LIBS and INC

Section 10.19 Final System GCC 5.2.0:

View https://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html for configure options
libstdcxx-time looks like auto is best for configure to use
precompiled libstdcxx pch header should probably keep that. Still undecided

SED=sed CC="gcc -isystem /usr/include" CXX="g++ -isystem /usr/include" \
LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" ../gcc-5.2.0/configure \
    --prefix=/usr --libexecdir=/usr/lib --enable-languages=c,c++ --disable-multilib \
    --with-system-zlib --enable-checking=release --disable-bootstrap

Add a compatibility symlink to enable building programs with Link Time Optimization (LTO)

install -v -dm755 /usr/lib/bfd-plugins
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/5.1.0/liblto_plugin.so /usr/lib/bfd-plugins/
Last edited 9 years ago by William Harrington (previous) (diff)

by William Harrington, 10 years ago

Attachment: gcc-5.1.0-pure64-1.patch added

Pure64 bit patch for final system and 64bit builds. The layout of MIPS config has changed and needs a close look at those parts. Loongson and some other needs changed.

by William Harrington, 10 years ago

Attachment: gcc-5.1.0-amd64-final-tests added

Test resuilts of Ch10 Pure64 GCC AMD64

comment:4 by Martin Ward, 9 years ago

Agree on the bootstrap for the final version of the compiler, I have patches for the specs files also including mips etc, pure 64 works fine, but switched to a snapshot of gcc-5.1.1 as have noticed some regression when building packages. i kept the seds for LIBS and INC in temp gcc

by William Harrington, 9 years ago

Attachment: gcc-5.2.0-isl-1.patch added

by William Harrington, 9 years ago

in reply to:  4 comment:5 by William Harrington, 9 years ago

Replying to blackadder:

Agree on the bootstrap for the final version of the compiler, I have patches for the specs files also including mips etc, pure 64 works fine, but switched to a snapshot of gcc-5.1.1 as have noticed some regression when building packages. i kept the seds for LIBS and INC in temp gcc

The seds for LIBS and INC can be removed. They are no longer required.

comment:6 by William Harrington, 9 years ago

Here are my current build instructions for gcc 5.2.0 and Pure64 bit:

GCC 4.8.3 -> 5.2.0

gcc-5.2.0-isl-1.patch

Static ======

remove touch limits.h add --with-glibc-version=2.11 so GLIBC will detect and use ssp properly. GLIBC will then no longer need config.cache for ssp.

AR=ar LDFLAGS="-Wl,-rpath,/cross-tools/lib" ../gcc-5.2.0/configure --prefix=/cross-tools --build=${CLFS_HOST} --host=${CLFS_HOST} --target=${CLFS_TARGET} --with-sysroot=${CLFS} --with-glibc-version=2.11 --with-local-prefix=/tools --with-native-system-header-dir=/tools/include --disable-nls --disable-shared --with-mpfr=/cross-tools --with-gmp=/cross-tools --with-isl=/cross-tools --with-mpc=/cross-tools -without-headers --with-newlib --disable-multilib --disable-decimal-float --disable-threads --disable-libatomic --disable-libgomp --disable-libitm --disable-libquadmath --disable-libsanitizer --disable-libssp --disable-libvtv --disable-libcilkrts --disable-libstdc++-v3 --with-system-zlib --enable-languages=c --enable-checking=release

Final =====

AR=ar LDFLAGS="-Wl,-rpath,/cross-tools/lib" ../gcc-5.2.0/configure --prefix=/cross-tools --build=${CLFS_HOST} --target=${CLFS_TARGET} --host=${CLFS_HOST} --with-sysroot=${CLFS} --with-local-prefix=/tools --with-native-system-header-dir=/tools/include --disable-nls --disable-static --enable-languages=c,c++ --disable-multilib --with-mpc=/cross-tools --with-mpfr=/cross-tools --with-gmp=/cross-tools --with-isl=/cross-tools --with-system-zlib --enable-checking=release

Temp ====

cat gcc/limitx.h gcc/glimits.h gcc/limity.h > dirname $($CLFS_TARGET-gcc -print-libgcc-file-name)/include-fixed/limits.h

../gcc-5.2.0/configure --prefix=/tools --build=${CLFS_HOST} --host=${CLFS_TARGET} --target=${CLFS_TARGET} --with-local-prefix=/tools --disable-multilib --with-native-system-header-dir=/tools/include --enable-languages=c,c++ --disable-libstdcxx-pch --with-system-zlib --enable-checking=release --enable-libstdcxx-time

remove sed for LIBS and INC

Ch10 Final System I'm currently working with. I have this form my last build:

GCC 5.2.0 Final System

SED=sed CC="gcc -isystem /usr/include" CXX="g++ -isystem /usr/include" LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" ../gcc-5.2.0/configure --prefix=/usr --libexecdir=/usr/lib --enable-languages=c,c++ --disable-multilib --with-system-zlib --enable-checking=release

install -v -dm755 /usr/lib/bfd-plugins ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/5.2.0/liblto_plugin.so /usr/lib/bfd-plugins/

Last edited 9 years ago by William Harrington (previous) (diff)

comment:7 by William Harrington, 9 years ago

Description: modified (diff)
Summary: GCC 5.1GCC 5.2
Note: See TracTickets for help on using tickets.