void-packages/srcpkgs/glibc/template
Helmut Pozimski d4b2a692a8 glibc: revert upstream changes to memchr-sse2
the changes made in glibc upstream commit 23d27709a423aec32821e9a5198a10267107bae2
cause segmentation faults on at least some i686 processors. This commit
reverts these changes to resolve the issue on affected systems until
there's an upstream fix.
2017-02-27 13:38:45 +01:00

198 lines
5.7 KiB
Bash

# Template file for 'glibc'
pkgname=glibc
version=2.25
revision=3
bootstrap=yes
short_desc="The GNU C library"
maintainer="Juan RP <xtraeme@voidlinux.eu>"
homepage="http://www.gnu.org/software/libc"
license="GPL-2, LGPL-2.1, BSD"
distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
checksum=067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0
patch_args="-Np1"
# Do not strip these files, objcopy errors out.
nostrip_files="
XBS5_ILP32_OFFBIG
XBS5_ILP32_OFF32
POSIX_V6_ILP32_OFF32
POSIX_V6_ILP32_OFFBIG
POSIX_V7_ILP32_OFF32
POSIX_V7_ILP32_OFFBIG
POSIX_V6_LP64_OFF64
POSIX_V7_LP64_OFF64
XBS5_LP64_OFF64
ld-${version}.so
libdl-${version}.so
libanl-${version}.so
libcidn-${version}.so
libresolv-${version}.so
libcrypt-${version}.so
libpthread-${version}.so
libm-${version}.so
libutil-${version}.so
libthread_db-1.0.so
librt-${version}.so
libnsl-${version}.so
libc-${version}.so
libBrokenLocale-${version}.so
libnss_compat-${version}.so
libnss_db-${version}.so
libnss_dns-${version}.so
libnss_files-${version}.so
libnss_hesiod-${version}.so
libnss_nisplus-${version}.so
libnss_nis-${version}.so"
conf_files="
/etc/rpc
/etc/gai.conf
/etc/ld.so.conf"
if [ "$CHROOT_READY" ]; then
hostmakedepends="bison perl"
fi
makedepends="kernel-libc-headers"
lib32files="/usr/lib/gconv/gconv-modules"
lib32symlinks="ld-linux.so.2"
# There's no point in building this for musl.
only_for_archs="i686 x86_64 armv5tel armv6l armv7l aarch64"
nopie=yes
do_configure() {
mkdir build
cd build
if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then
_libdir=/usr/lib32
else
_libdir=/usr/lib
fi
echo "slibdir=${_libdir}" > configparms
echo "bindir=/usr/bin" >> configparms
echo "sbindir=/usr/bin" >> configparms
echo "rootsbindir=/usr/sbin" >> configparms
case "$XBPS_TARGET_MACHINE" in
# Build with -mno-tls-direct-seg-refs to avoid performance
# problems with Xen on x86 32bit.
i686) export CFLAGS+=" -mno-tls-direct-seg-refs";;
# Force hard float ABI.
# To build for soft float: --with-float=soft --without-fp.
armv5*) configure_args+=" --with-march=armv5te --without-fp --with-float=soft";;
armv6l*) configure_args+=" --with-march=armv6 --with-fpu=vfp --with-float=hard";;
armv7l*) configure_args+=" --with-march=armv7-a --with-fpu=vfpv3 --with-float=hard";;
arm64*) configure_args+=" --with-march=armv8-a";;
esac
if [ "$CROSS_BUILD" ]; then
configure_args+=" --host=${XBPS_CROSS_TRIPLET}"
configure_args+=" --with-sysroot=${XBPS_CROSS_BASE}"
configure_args+=" --with-headers=${XBPS_CROSS_BASE}/usr/include"
else
configure_args+=" --with-headers=${XBPS_MASTERDIR}/usr/include"
fi
# Disable SSP
export CFLAGS="${CFLAGS/-fstack-protector-strong/}"
# Disable FORTIFY_SOURCE
export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=?/}"
SHELL=/bin/bash ../configure ${configure_args} \
--bindir=/usr/bin --sbindir=/usr/bin \
--libdir=${_libdir} --libexecdir=${_libdir} \
--enable-add-ons=libidn --enable-obsolete-rpc \
--enable-multi-arch --enable-bind-now \
--disable-profile --enable-kernel=2.6.32 \
--enable-stack-guard-randomization \
--without-selinux --without-cvs --without-gd \
--disable-lock-elision \
libc_cv_rootsbindir=/usr/bin \
libc_cv_rtlddir=${_libdir} libc_cv_slibdir=${_libdir}
}
do_build() {
# Less verbose output when compiling and assembling
sed -i Makerules \
-e 's|compile-command.c = \(.*\)|compile-command.c = @echo " CC $<"; \1|' \
-e 's|compile-command.cc = \(.*\)|compile-command.cc = @echo " CXX $<"; \1|' \
-e 's|compile-command.S = \(.*\)|compile-command.S = @echo " ASM $<"; \1|'
cd build
make ${makejobs}
}
do_install() {
vlicense LICENSES
# Create DESTDIR/etc/ld.so.conf
mkdir -p ${DESTDIR}/etc
echo "include /etc/ld.so.conf.d/*.conf" > ${DESTDIR}/etc/ld.so.conf
cd build
make install_root=${DESTDIR} install
# create /etc/default/libc-locales
vinstall ${FILESDIR}/libc-locales 644 etc/default
cp ${wrksrc}/localedata/SUPPORTED ${wrksrc}/build
sed -i -e "s|/| |g" \
-e 's|\\| |g' \
-e "s|SUPPORTED-LOCALES=||" \
-e "s|^|#|g" ${wrksrc}/build/SUPPORTED
cat ${wrksrc}/build/SUPPORTED >> ${DESTDIR}/etc/default/libc-locales
# ldd is a bash script, so make it run as such.
replace_interpreter bash ${DESTDIR}/usr/bin/ldd
# On x86_64, add dynamic linker's 32bit version to ldd.
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
rtldlist="/lib/ld-linux.so.2 /lib/ld-linux-x86-64.so.2"
sed -i "s|^RTLDLIST.*$|RTLDLIST=\"$rtldlist\"|" \
${DESTDIR}/usr/bin/ldd
fi
install -d ${DESTDIR}/etc/ld.so.conf.d
echo "/usr/local/lib" > ${DESTDIR}/etc/ld.so.conf.d/usr_local.conf
chmod 644 ${DESTDIR}/etc/ld.so.conf.d/usr_local.conf
rm -f ${DESTDIR}/etc/ld.so.cache
# Create ld-linux.so.3 symlink for ARM.
case "$XBPS_TARGET_MACHINE" in
armv?l) ln -sfr ${DESTDIR}/usr/lib/ld-linux-armhf.so.3 ${DESTDIR}/usr/lib/ld-linux.so.3;;
esac
vinstall ${wrksrc}/posix/gai.conf 644 etc
rm -rf ${DESTDIR}/var/db
# Remove tzselect and z{dump,ic}, provided by tzutils.
rm -f ${DESTDIR}/usr/bin/tzselect
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
}
glibc-devel_package() {
lib32depends="glibc>=${version}_${revision}"
lib32files="/usr/include/gnu/stubs-32.h"
depends="${makedepends} glibc>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
vmove "usr/lib/*.a"
vmove "usr/lib/*.o"
vmove usr/share/info
}
}
glibc-locales_package() {
noarch=yes
conf_files="/etc/default/libc-locales"
short_desc+=" - locale data files"
pkg_install() {
vmove etc/default
vmove usr/share/i18n
vmove usr/share/locale
}
}
nscd_package() {
conf_files="/etc/nscd.conf"
short_desc+=" - Name Service Cache Daemon"
pkg_install() {
vmove usr/bin/nscd
vinstall ${wrksrc}/nscd/nscd.conf 644 etc
vsv nscd
}
}