3.3. glibc-2.34
#!/bin/sh # Copyright © 1999-2022 Gerard Beekmans # Copyright © 2017-2022 Random Crew # Distributed under the terms of MIT License.
Configuration
src_config()
{
sed -e '/NOTIFY_REMOVED)/s/)/ \&\& data.attr != NULL)/' \
-i sysdeps/unix/sysv/linux/mq_notify.c
mkdir build
cd build
echo "rootsbindir=${PREFIX}/sbin" > configparms
../configure \
--prefix=${PREFIX} \
--disable-werror \
--enable-kernel=3.2 \
--enable-stack-protector=strong \
--with-headers=${PREFIX}/include \
libc_cv_slibdir=${PREFIX}/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.
- /lib/ld-linux* is created, pointing to actual $PREFIX/lib/ld-linux*.
src_install()
{
make install ${MAKEOPTS} DESTDIR=${D}
# real and expected loader location
mkdir -p ${D}/lib
ln -sf ../usr/lib/ld-linux-x86-64.so.2 ${D}/lib/ld-linux-x86-64.so.2
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
sed '/RTLDLIST=/s@/usr@@g' -i ${D}${PREFIX}/bin/ldd
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 el_GR -f ISO-8859-7 ${D}${PREFIX}/lib/locale/el_GR
localedef -i en_GB -f ISO-8859-1 ${D}${PREFIX}/lib/locale/en_GB
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_ES -f ISO-8859-15 ${D}${PREFIX}/lib/locale/es_ES@euro
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 is_IS -f ISO-8859-1 ${D}${PREFIX}/lib/locale/is_IS
localedef -i is_IS -f UTF-8 ${D}${PREFIX}/lib/locale/is_IS.UTF-8
localedef -i it_IT -f ISO-8859-1 ${D}${PREFIX}/lib/locale/it_IT
localedef -i it_IT -f ISO-8859-15 ${D}${PREFIX}/lib/locale/it_IT@euro
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 ja_JP -f SHIFT_JIS ${D}${PREFIX}/lib/locale/ja_JP.SJIS 2> /dev/null || true
localedef -i ja_JP -f UTF-8 ${D}${PREFIX}/lib/locale/ja_JP.UTF-8
localedef -i nl_NL@euro -f ISO-8859-15 ${D}${PREFIX}/lib/locale/nl_NL@euro
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 se_NO -f UTF-8 ${D}${PREFIX}/lib/locale/se_NO.UTF-8
localedef -i ta_IN -f UTF-8 ${D}${PREFIX}/lib/locale/ta_IN.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
localedef -i zh_HK -f BIG5-HKSCS ${D}${PREFIX}/lib/locale/zh_HK.BIG5-HKSCS
localedef -i zh_TW -f UTF-8 ${D}${PREFIX}/lib/locale/zh_TW.UTF-8
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
Build code
Other files
Links
- url.lfs: https://linuxfromscratch.org/lfs/view/11.0/chapter08/glibc.html
- url.lfs.stage1: https://linuxfromscratch.org/lfs/view/11.0/chapter05/glibc.html