3.25. gcc-11.2.0

#!/bin/sh
# Copyright © 1999-2022 Gerard Beekmans
# Copyright © 2017-2022 Random Crew
# Distributed under the terms of MIT License.

Configuration

src_config()
{
    sed -e '/static.*SIGSTKSZ/d' \
        -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \
        -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp

    case $(uname -m) in
        x86_64)
            sed -e '/m64=/s/lib64/lib/' \
                -i.orig gcc/config/i386/t-linux64
        ;;
    esac

    mkdir build
    cd build

    ../configure \
        --prefix=${PREFIX} \
        LD=ld \
        --enable-languages=c,c++ \
        --disable-multilib \
        --disable-bootstrap \
        --with-system-zlib
}

Compilation

src_compile()
{
    make ${MAKEOPTS}
}

Installation

The following code from original LFS is not executed:

chown -v -R root:root \
    /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed}

We do not need that, as all built files are user-owned by now. At the installation stage all files will automatically obtain root owner.

src_install()
{
    make install ${MAKEOPTS} DESTDIR=${D}

    rm -rf ${D}${PREFIX}/lib/gcc/$(gcc -dumpmachine)/${PV}/include-fixed/bits/
    ln -s ../bin/cpp ${D}${PREFIX}/lib/cpp
    ln -s gcc ${D}${PREFIX}/bin/cc
    install -dm755 ${D}${PREFIX}/lib/bfd-plugins
    ln -sf ../../libexec/gcc/$(gcc -dumpmachine)/${PV}/liblto_plugin.so \
        ${D}${PREFIX}/lib/bfd-plugins/

    mkdir -p ${D}${PREFIX}/share/gdb/auto-load/usr/lib
    mv ${D}${PREFIX}/lib/*gdb.py ${D}${PREFIX}/share/gdb/auto-load/usr/lib
}

Unit testing

src_check()
{
    cd ${S}/build
    ulimit -s 32768
    make -k check || nonfail
    ../contrib/test_summary
}

Build code

gcc.build

Other files

meta.txt
text

Links

url.lfs: https://linuxfromscratch.org/lfs/view/11.1/chapter08/gcc.html
url.lfs.stage1: