#!/usr/bin/env bash patch -Np1 -i ../glibc-fhs-1.patch patch -Np1 -i ../glibc-2.43-upstream_fixes-1.patch mkdir -v build cd build || return 1 echo "rootsbindir=/usr/sbin" > configparms ../configure --prefix=/usr \ --disable-werror \ --disable-nscd \ libc_cv_slibdir=/usr/lib \ --enable-stack-protector=strong \ --enable-kernel=5.10 make # sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile echo "Fix the Makefile to skip an outdated sanity check that fails with a modern Glibc configuration" echo "sed /test-installation/s#\$\(PERL\)\ scripts/test-installation.pl#echo\ outdated_sanity_check_disabled# ../Makefile" sed /test-installation/s#\$\(PERL\)\ scripts/test-installation.pl#echo\ outdated_sanity_check_disabled# ../Makefile sed /test-installation/s#\$\(PERL\)\ scripts/test-installation.pl#echo\ outdated_sanity_check_disabled# -i ../Makefile :>/tmp/glibc_make_check.log if ! make check | tee /tmp/glibc_make_check.log then grep ^FAIL /tmp/glibc_make_check.log | cut -d' ' -f 2 | while IFS= read -r failure do case ${failure} in io/tst-lchmod|io/tst-lchmod-time64) echo "known to fail" ;; nptl/tst-basic3) echo "discovered failing" ;; malloc/tst-malloc-too-large-malloc-hugetlb2) echo "discovered failing" ;; misc/tst-pidfd) echo "discovered failing" ;; *) echo "Failed on FAIL ${failure}" exit 1 ;; esac done fi cat >> /etc/ld.so.conf << "EOF" # Add an include directory include /etc/ld.so.conf.d/*.conf EOF mkdir -pv /etc/ld.so.conf.d cat > /etc/ld.so.conf.d/libc.conf << "EOF" /usr/lib /usr/local/lib EOF make install sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd localedef -i C -f UTF-8 C.UTF-8 localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8 localedef -i de_DE -f ISO-8859-1 de_DE localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro localedef -i de_DE -f UTF-8 de_DE.UTF-8 localedef -i el_GR -f ISO-8859-7 el_GR localedef -i en_GB -f ISO-8859-1 en_GB localedef -i en_GB -f UTF-8 en_GB.UTF-8 localedef -i en_HK -f ISO-8859-1 en_HK localedef -i en_PH -f ISO-8859-1 en_PH localedef -i en_US -f ISO-8859-1 en_US localedef -i en_US -f UTF-8 en_US.UTF-8 localedef -i es_ES -f ISO-8859-15 es_ES@euro localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fa_IR -f UTF-8 fa_IR localedef -i fr_FR -f ISO-8859-1 fr_FR localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 localedef -i is_IS -f ISO-8859-1 is_IS localedef -i is_IS -f UTF-8 is_IS.UTF-8 localedef -i it_IT -f ISO-8859-1 it_IT localedef -i it_IT -f ISO-8859-15 it_IT@euro localedef -i it_IT -f UTF-8 it_IT.UTF-8 localedef -i ja_JP -f EUC-JP ja_JP localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 localedef -i se_NO -f UTF-8 se_NO.UTF-8 localedef -i ta_IN -f UTF-8 ta_IN.UTF-8 localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 localedef -i zh_CN -f GB18030 zh_CN.GB18030 localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS localedef -i zh_TW -f UTF-8 zh_TW.UTF-8 make localedata/install-locales cat > /etc/nsswitch.conf << "EOF" # Begin /etc/nsswitch.conf passwd: files systemd group: files systemd shadow: files systemd hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns networks: files protocols: files services: files ethers: files rpc: files # End /etc/nsswitch.conf EOF tar -xf ../../tzdata2026b.tar.gz ZONEINFO=/usr/share/zoneinfo mkdir -pv $ZONEINFO/{posix,right} for tz in etcetera southamerica northamerica europe africa antarctica \ asia australasia backward; do zic -L /dev/null -d $ZONEINFO ${tz} zic -L /dev/null -d $ZONEINFO/posix ${tz} zic -L leapseconds -d $ZONEINFO/right ${tz} done cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO zic -d $ZONEINFO -p America/New_York unset ZONEINFO tz ln -sfv /usr/share/zoneinfo/America/New_York /etc/localtime