3.6. glibc-2.32

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

Configuration

src_config()
{
    mkdir build
    cd build

    ../configure                               \
        --prefix=${PREFIX}                     \
        --disable-werror                       \
        --enable-kernel=3.2                    \
        --enable-stack-protector=strong        \
        --with-headers=${PREFIX}/include       \
        libc_cv_slibdir=/lib
}

Compilation

src_compile()
{
    make ${MAKEOPTS}

    sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
}

Unit testing

Symlinks before the check procedure are not created, as we should not touch the filesystem directly. Tests can be run after glibc installation.

src_check()
{
    make check || nonfail
}

Installation

Time zone data are installed in separate package tzdata.

Additional compatibility links:

ld-lsb*.so.3 link is created for LSB compatibility.
That is done in glibc package instead of manual editing filesystem in original LFS.

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

    case $(uname -m) in
        i?86)
            ln -sf ld-linux.so.2 ${D}/lib/ld-lsb.so.3
        ;;
        x86_64) 
            mkdir -p ${D}/lib64
            ln -sf ../lib/ld-linux-x86-64.so.2 ${D}/lib64
            ln -sf ../lib/ld-linux-x86-64.so.2 ${D}/lib64/ld-lsb-x86-64.so.3
        ;;
    esac

    cp ../nscd/nscd.conf ${D}/etc/nscd.conf
    mkdir -p ${D}/var/cache/nscd/

    mkdir -p ${D}${PREFIX}/lib/locale/
    localedef -i POSIX -f UTF-8 ${D}${PREFIX}/lib/locale/C.UTF-8 2> /dev/null || true
    localedef -i cs_CZ -f UTF-8 ${D}${PREFIX}/lib/locale/cs_CZ.UTF-8
    localedef -i de_DE -f ISO-8859-1 ${D}${PREFIX}/lib/locale/de_DE
    localedef -i de_DE@euro -f ISO-8859-15 ${D}${PREFIX}/lib/locale/de_DE@euro
    localedef -i de_DE -f UTF-8 ${D}${PREFIX}/lib/locale/de_DE.UTF-8
    localedef -i en_GB -f UTF-8 ${D}${PREFIX}/lib/locale/en_GB.UTF-8
    localedef -i en_HK -f ISO-8859-1 ${D}${PREFIX}/lib/locale/en_HK
    localedef -i en_PH -f ISO-8859-1 ${D}${PREFIX}/lib/locale/en_PH
    localedef -i en_US -f ISO-8859-1 ${D}${PREFIX}/lib/locale/en_US
    localedef -i en_US -f UTF-8 ${D}${PREFIX}/lib/locale/en_US.UTF-8
    localedef -i es_MX -f ISO-8859-1 ${D}${PREFIX}/lib/locale/es_MX
    localedef -i fa_IR -f UTF-8 ${D}${PREFIX}/lib/locale/fa_IR
    localedef -i fr_FR -f ISO-8859-1 ${D}${PREFIX}/lib/locale/fr_FR
    localedef -i fr_FR@euro -f ISO-8859-15 ${D}${PREFIX}/lib/locale/fr_FR@euro
    localedef -i fr_FR -f UTF-8 ${D}${PREFIX}/lib/locale/fr_FR.UTF-8
    localedef -i it_IT -f ISO-8859-1 ${D}${PREFIX}/lib/locale/it_IT
    localedef -i it_IT -f UTF-8 ${D}${PREFIX}/lib/locale/it_IT.UTF-8
    localedef -i ja_JP -f EUC-JP ${D}${PREFIX}/lib/locale/ja_JP
    localedef -i ru_RU -f KOI8-R ${D}${PREFIX}/lib/locale/ru_RU.KOI8-R
    localedef -i ru_RU -f UTF-8 ${D}${PREFIX}/lib/locale/ru_RU.UTF-8
    localedef -i tr_TR -f UTF-8 ${D}${PREFIX}/lib/locale/tr_TR.UTF-8
    localedef -i zh_CN -f GB18030 ${D}${PREFIX}/lib/locale/zh_CN.GB18030
    
    cat > ${D}/etc/nsswitch.conf << "EOF"
# Begin /etc/nsswitch.conf

passwd: files
group: files
shadow: files

hosts: files dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

# End /etc/nsswitch.conf
EOF

    mkdir -p ${D}/etc/ld.so.conf.d/
    cat > /etc/ld.so.conf << "EOF"
# Begin /etc/ld.so.conf
/usr/local/lib
/opt/lib

# Add an include directory
include /etc/ld.so.conf.d/*.conf

EOF

}

Patches

glibc-2.32-fhs-1.patch

Build code

glibc.build
pass1.sh

Other files

meta.txt
text

Links

url.lfs: https://linuxfromscratch.org/lfs/view/10.0/chapter08/glibc.html
url.lfs.stage1: https://linuxfromscratch.org/lfs/view/10.0/chapter05/glibc.html