2d1a45ccb1
The lock elision support in glibc has a runtime check even if the build option is disabled. This patch from Fedora completely disables that check if the build option is disabled, and we disable this now.
168 lines
4.8 KiB
Text
168 lines
4.8 KiB
Text
# Template file for 'glibc'
|
|
pkgname=glibc
|
|
version=2.21
|
|
revision=3
|
|
bootstrap=yes
|
|
short_desc="The GNU C library"
|
|
maintainer="Juan RP <xtraeme@gmail.com>"
|
|
homepage="http://www.gnu.org/software/libc"
|
|
license="GPL-2, LGPL-2.1, BSD"
|
|
distfiles="http://ftp.gnu.org/gnu/glibc/glibc-${version}.tar.xz"
|
|
checksum=aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8
|
|
# 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"
|
|
conf_files="
|
|
/etc/rpc
|
|
/etc/gai.conf
|
|
/etc/ld.so.conf"
|
|
# Force creation of -dbg pkg, required by valgrind.
|
|
force_debug_pkgs=yes
|
|
|
|
if [ "$CHROOT_READY" ]; then
|
|
hostmakedepends="bison perl"
|
|
fi
|
|
makedepends="kernel-libc-headers"
|
|
build_options="systemd"
|
|
lib32files="/usr/lib/gconv/gconv-modules"
|
|
lib32symlinks="ld-linux.so.2"
|
|
|
|
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/sbin" >> 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";;
|
|
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/}"
|
|
|
|
SHELL=/bin/bash ../configure ${configure_args} \
|
|
--bindir=/usr/bin --sbindir=/usr/sbin \
|
|
--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/sbin \
|
|
libc_cv_rtlddir=${_libdir} libc_cv_slibdir=${_libdir}
|
|
}
|
|
|
|
do_build() {
|
|
cd build
|
|
make ${makejobs}
|
|
}
|
|
do_install() {
|
|
# 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/sbin/z{dump,ic}
|
|
}
|
|
|
|
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/sbin/nscd
|
|
if [ "$build_option_systemd" ]; then
|
|
vinstall ${wrksrc}/nscd/nscd.service 644 usr/lib/systemd/system
|
|
vinstall ${wrksrc}/nscd/nscd.tmpfiles 644 usr/lib/tmpfiles.d nscd.conf
|
|
fi
|
|
vinstall ${wrksrc}/nscd/nscd.conf 644 etc
|
|
}
|
|
}
|