From 1ab0f738be6db800e695870b8c624629563f53b5 Mon Sep 17 00:00:00 2001 From: Aditya Date: Tue, 10 Jan 2023 14:57:58 +0530 Subject: [PATCH] Add 8.5 - Build glibc --- scripts/chapter8/8.5-glibc.sh | 141 ++++++++++++++++++++++++++++++++++ scripts/main.sh | 12 +++ 2 files changed, 153 insertions(+) create mode 100644 scripts/chapter8/8.5-glibc.sh diff --git a/scripts/chapter8/8.5-glibc.sh b/scripts/chapter8/8.5-glibc.sh new file mode 100644 index 0000000..9177aff --- /dev/null +++ b/scripts/chapter8/8.5-glibc.sh @@ -0,0 +1,141 @@ +#!/bin/bash + +cd /sources +tar xf glibc-2.36.tar.xz +cd glibc-2.36 + +patch -Np1 -i ../glibc-2.36-fhs-1.patch + +mkdir -v build +cd build + +echo "rootsbindir=/usr/sbin" > configparms + +../configure --prefix=/usr \ + --disable-werror \ + --enable-kernel=3.2 \ + --enable-stack-protector=strong \ + --with-headers=/usr/include \ + libc_cv_slibdir=/usr/lib + +if [ $? -ne 0 ] +then + exit 1 +fi + +make -j5 + +if [ $? -ne 0 ] +then + exit 1 +fi + +make check + +touch /etc/ld.so.conf + +sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile + +make install + +sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd + +cp -v ../nscd/nscd.conf /etc/nscd.conf +mkdir -pv /var/cache/nscd + +mkdir -pv /usr/lib/locale +localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true +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 SHIFT_JIS ja_JP.SJIS 2> /dev/null || true +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 + +localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true +localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true + +cat > /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 + +tar -xf ../../tzdata2022c.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 + +tzselect + +ln -sfv /usr/share/zoneinfo/Asia/Kolkata /etc/localtime + +cat > /etc/ld.so.conf << "EOF" +# Begin /etc/ld.so.conf +/usr/local/lib +/opt/lib + +EOF + +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 + +cd /sources +rm -rf glibc-2.36 diff --git a/scripts/main.sh b/scripts/main.sh index a7a29b1..924e0fa 100644 --- a/scripts/main.sh +++ b/scripts/main.sh @@ -594,4 +594,16 @@ fi echo "Building iana-etc" su -c "bash $SCRIPT/chapter8/8.4-iana-etc.sh" +# Chapter 8.5 +# =========== +echo "Building glibc" +su -c "bash $SCRIPT/chapter8/8.5-glibc.sh" + +# Exit on error +check_exit_code +if [ $exit_status -ne 0 ] +then + stop_script "chapter8/8.5-glibc.sh" +fi +