#!/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) 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' ) md5sums=('00e9b89e043340f688bc93ec03239b57' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' ) 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=/ --mandir=/share/man --infodir=/share/info --with-bugurl=http://gitlab.com/sulix/main/issues --enable-add-ons --enable-bind-now --enable-lock-elision --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 ../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 pwd ../configure ${opts[@]} \ --libdir=/lib \ --libexecdir=/lib/glibc cd .. } build(){ bdirs=(glibc-build) if use multilib ; then bdirs+=(glibc32-build) fi for bdir in ${bdirs[@]} ; 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 glibc-build ${multilib:+glibc32-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/ 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 }