# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_prepare.eblit,v 1.1 2014/09/10 05:59:03 vapier Exp $ eblit-glibc-src_prepare() { # XXX: We should do the branchupdate, before extracting the manpages and # infopages else it does not help much (mtimes change if there is a change # to them with branchupdate) if [[ -n ${BRANCH_UPDATE} ]] ; then epatch "${DISTDIR}"/glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2 # Snapshot date patch einfo "Patching version to display snapshot date ..." sed -i -e "s:\(#define RELEASE\).*:\1 \"${BRANCH_UPDATE}\":" version.h fi # tag, glibc is it if ! version_is_at_least 2.17 ; then [[ -e csu/Banner ]] && die "need new banner location" glibc_banner > csu/Banner fi if [[ -n ${PATCH_VER} ]] && ! use vanilla ; then EPATCH_MULTI_MSG="Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER} ..." \ EPATCH_EXCLUDE=${GLIBC_PATCH_EXCLUDE} \ EPATCH_SUFFIX="patch" \ ARCH=$(tc-arch) \ epatch "${WORKDIR}"/patches fi if just_headers ; then if [[ -e ports/sysdeps/mips/preconfigure ]] ; then # mips peeps like to screw with us. if building headers, # we don't have a real compiler, so we can't let them # insert -mabi on us. sed -i '/CPPFLAGS=.*-mabi/s|.*|:|' ports/sysdeps/mips/preconfigure || die find ports/sysdeps/mips/ -name Makefile -exec sed -i '/^CC.*-mabi=/s:-mabi=.*:-D_MIPS_SZPTR=32:' {} + fi fi epatch "${FILESDIR}"/CVE-2015-1781-dns-host.c-buffer-overflow.patch epatch_user gnuconfig_update # Glibc is stupid sometimes, and doesn't realize that with a # static C-Only gcc, -lgcc_eh doesn't exist. # http://sourceware.org/ml/libc-alpha/2003-09/msg00100.html # http://sourceware.org/ml/libc-alpha/2005-02/msg00042.html # But! Finally fixed in recent versions: # http://sourceware.org/ml/libc-alpha/2012-05/msg01865.html if ! version_is_at_least 2.16 ; then echo 'int main(){}' > "${T}"/gcc_eh_test.c if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/gcc_eh_test.c -lgcc_eh 2>/dev/null ; then sed -i -e 's:-lgcc_eh::' Makeconfig || die "sed gcc_eh" fi fi cd "${WORKDIR}" find . -type f '(' -size 0 -o -name "*.orig" ')' -delete find . -name configure -exec touch {} + # Fix permissions on some of the scripts. chmod u+x "${S}"/scripts/*.sh }