#!/bin/bash name=glibc release=1 version=2.36 url='https://gitlab.com/sulinos/devel/ymp' description='GNU libc library' email='parduscix@yandex.ru' maintainer='sulincix' license=('GPLv3') arch=(x86_64) dontstrip="31" source=('https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.xz' 'ld.so.conf' 'usr-support.conf' 'x86_64-linux-gnu.conf' 'glibc.sysconf' 'reenable_DT_HASH.patch' 'locale-gen' 'revdep-rebuild' ) md5sums=('00e9b89e043340f688bc93ec03239b57' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' ) uses=(multilib) group=(system.base) export CFLAGS="-O3 ${debug:+-g} -s -mno-tls-direct-seg-refs -mtune=generic -DSULIX" export CXXFLAGS="-O3 ${debug:+-g} -s -mno-tls-direct-seg-refs -mtune=generic -DSULIX" cd "$name-$version" setup(){ # Thx archlinux patch -Np1 -i "../reenable_DT_HASH.patch" opts=( --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://gitlab.com/sulix/main/issues --enable-add-ons --enable-bind-now --enable-lock-elision --enable-cet --enable-multi-arch --enable-static-pie --enable-stack-protector=all --enable-kernel=5.10.0 --enable-stackguard-randomization --without-selinux --disable-werror ) if use multilib ; then export CC="gcc -m32" export CXX="g++ -m32" mkdir glibc32-build cd glibc32-build echo "slibdir=/lib32" >> configparms echo "rtlddir=/lib32" >> configparms ../configure ${opts[@]} \ --host=i686-pc-linux-gnu \ --libdir=/lib32 \ --libexecdir=/lib32/glibc cd .. fi export CC="gcc" export CXX="g++" mkdir glibc-build cd glibc-build echo "slibdir=/lib64" >> configparms echo "rtlddir=/lib64" >> configparms ../configure ${opts[@]} \ --host=x86_64-pc-linux-gnu \ --libdir=/lib64 \ --libexecdir=/lib64/glibc cd .. } build(){ for bdir in glibc-build glibc32-build ; do if [[ -d $bdir ]] ; then make -C $bdir -O -j`nproc --all` make -C $bdir info fi done } package(){ # create symlink lib64 (gentoo compability) mkdir -p ${DESTDIR}/lib64 ln -s lib64 ${DESTDIR}/lib if use multilib ; then mkdir -p ${DESTDIR}/lib32 ln -s lib32 ${DESTDIR}/libx32 fi for bdir in glibc32-build glibc-build ; do if [[ -d $bdir ]] ; then make -C $bdir install -j$(nproc --all) fi done mkdir -p ${DESTDIR}/etc/ld.so.conf.d/ ${DESTDIR}/etc/sysconf.d/ ${DESTDIR}/bin install ../ld.so.conf ${DESTDIR}/etc/ld.so.conf install ../usr-support.conf ${DESTDIR}/etc/ld.so.conf.d/ install ../x86_64-linux-gnu.conf ${DESTDIR}/etc/ld.so.conf.d/ # remove ld.so.cache file (this file must generated by ldconfig command from inary) rm -f ${DESTDIR}/etc/ld.so.cache # install sysconf trigger install ../glibc.sysconf ${DESTDIR}/etc/sysconf.d/glibc # install extra tools install ../locale-gen ${DESTDIR}/bin/locale-gen install ../revdep-rebuild ${DESTDIR}/bin/revdep-rebuild }