64 lines
2.2 KiB
Plaintext
64 lines
2.2 KiB
Plaintext
# Copyright 1999-2014 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Id$
|
|
|
|
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_user
|
|
|
|
gnuconfig_update
|
|
|
|
# Glibc is stupid sometimes, and doesn't realize that with a
|
|
# static C-Only gcc, -lgcc_eh doesn't exist.
|
|
# https://sourceware.org/ml/libc-alpha/2003-09/msg00100.html
|
|
# https://sourceware.org/ml/libc-alpha/2005-02/msg00042.html
|
|
# But! Finally fixed in recent versions:
|
|
# https://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
|
|
}
|