mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-23 15:31:05 +02:00
glibc: sync with upstream, bump to latest stable
Upgrade to 2.22
This commit is contained in:
parent
52bcd9e089
commit
08e9b46176
@ -1,3 +1,3 @@
|
||||
DIST gcc-4.7.3-r1-multilib-bootstrap.tar.bz2 8064097 SHA256 34aec5a59bb4d0ecf908c62fd418461d0f3793238296897687305fd7a1f27299 SHA512 40b93e194ad41a75d649d84d1c49070680f253a13f0617803243bc61c44fed1ca2d0a7572a97ebb79353f312b58b5f6360be916dd7435928cc53935082e15269 WHIRLPOOL bbce19e7fe5c30faa55ddd4e29070f0d1fdfca3a04e8d68e0772260fa9be89ccde63ec92badb490209008df5fee6e53dfdeec4ae51857b90ba298a79315a199f
|
||||
DIST glibc-2.21-patches-6.tar.bz2 42366 SHA256 01c0373a950b3df9bbd2e466718e3adbbbe0bd4a0fa00376386c95078e45e8f5 SHA512 83dcbcd1733784dfde4fb6aa2431a929e8b5750797fecd30686a6b3145a2ac6a6245957a866cd745dad8e1b976e82ee584ca1b21888dfc26ae839bb7da71e702 WHIRLPOOL 870ee6d0d4a6695d55472870d13cb943cfd7b0a2662be51198d7e9ddb24e4eb26ccee4f032677e95584dccd48685990c144402e147c01b0c90fca30c9fcdfc45
|
||||
DIST glibc-2.21.tar.xz 12322092 SHA256 aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8 SHA512 8cded6693618bec115f678fcbd0b77556f97dfa8337608f66e37224aefa55b38765ba61cb4d58beea37b5934e5ec8e30bad58613707388484906f2a0ce77997d WHIRLPOOL d07fec32bd92eade065a3b6170932b8bd41d07df4aa69dd5a860ebb9678c22bd1e20bf88b1fc05c3ecc18e709c0a63118e12525dc668e0399d7ef7fe4454702d
|
||||
DIST glibc-2.22-patches-13.tar.bz2 74479 SHA256 ffd1e0f9a41be030e5ce2518d9e84a1fbaa9a4fb2e96f1b85dafb05fea666c86 SHA512 73517fc1502b0733d67ade1d1ba6168415f5da64f37045fac0b10ef57155bf6dfbe1876e4742d2543fcea0c935c179426f6fbb94f0205968392ef903d2f83897 WHIRLPOOL 0eeedaf09eb42e5186256dd41aae00cd2b9b8e3ab929a792e83d0fd8e8a8630d829f01b293588bf59e105eb17ab512416d8d115c3e542cddc34a84b84d56af3d
|
||||
DIST glibc-2.22.tar.xz 12969072 SHA256 eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948 SHA512 a8719f3a4f8aa5fa81711116fdafbea5082c6dfd85bd8c4cdce60571910263ab422b35bb8b55a84d37ccb146442133ba60a84d453ca4a439c8ccd35419bd051b WHIRLPOOL f7e707b3776fc197a2e7bf5633721925507237b154bbc1f94b9fc303c87e6fc039ff0758da6ee55b4c1a0daaa87c6e594a6c96e7b00a7ba8ae98ee29918709a7
|
||||
|
@ -0,0 +1,32 @@
|
||||
https://bugs.gentoo.org/503838
|
||||
http://gcc.gnu.org/PR60465
|
||||
https://sourceware.org/ml/libc-alpha/2015-12/msg00556.html
|
||||
https://trofi.github.io/posts/189-glibc-on-ia64-or-how-relocations-bootstrap.html
|
||||
|
||||
newer versions of gcc generate relocations in the elf_get_dynamic_info func
|
||||
which glibc relies on to populate some info structs. those structs are then
|
||||
used by ldso to process relocations in itself. glibc requires that there are
|
||||
no relocations until that point (*after* elf_get_dynamic_info), so we end up
|
||||
crashing during elf_get_dynamic_info because the relocation has not yet been
|
||||
processed.
|
||||
|
||||
this hack shuffles the code in a way that tricks gcc into not generating the
|
||||
relocation. we need to figure out something better for upstream.
|
||||
|
||||
--- a/elf/get-dynamic-info.h
|
||||
+++ b/elf/get-dynamic-info.h
|
||||
@@ -66,8 +66,12 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
|
||||
info[DT_VALTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
|
||||
+ DT_VERSIONTAGNUM + DT_EXTRANUM] = dyn;
|
||||
else if ((d_tag_utype) DT_ADDRTAGIDX (dyn->d_tag) < DT_ADDRNUM)
|
||||
- info[DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
|
||||
- + DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM] = dyn;
|
||||
+ {
|
||||
+ d_tag_utype i =
|
||||
+ DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
|
||||
+ + DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM;
|
||||
+ info[i] = dyn;
|
||||
+ }
|
||||
++dyn;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ alt_headers() {
|
||||
}
|
||||
alt_build_headers() {
|
||||
if [[ -z ${ALT_BUILD_HEADERS} ]] ; then
|
||||
ALT_BUILD_HEADERS=$(alt_headers)
|
||||
ALT_BUILD_HEADERS="${EPREFIX}$(alt_headers)"
|
||||
if tc-is-cross-compiler ; then
|
||||
ALT_BUILD_HEADERS=${SYSROOT}$(alt_headers)
|
||||
if [[ ! -e ${ALT_BUILD_HEADERS}/linux/version.h ]] ; then
|
||||
@ -102,63 +102,83 @@ setup_target_flags() {
|
||||
# Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though.
|
||||
filter-flags "-fcall-used-g7"
|
||||
append-flags "-fcall-used-g6"
|
||||
filter-flags "-mvis"
|
||||
|
||||
GLIBCMAJOR=$(get_version_component_range 1 ${PV})
|
||||
GLIBCMINOR=$(get_version_component_range 2 ${PV})
|
||||
# If the CHOST is the basic one (e.g. not sparcv9-xxx already),
|
||||
# try to pick a better one so glibc can use cpu-specific .S files.
|
||||
# We key off the CFLAGS to get a good value. Also need to handle
|
||||
# version skew.
|
||||
# We can't force users to set their CHOST to their exact machine
|
||||
# as many of these are not recognized by config.sub/gcc and such :(.
|
||||
# Note: If the mcpu values don't scale, we might try probing CPP defines.
|
||||
# Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ?
|
||||
|
||||
# set CTARGET_OPT so glibc can use cpu-specific .S files for better performance
|
||||
# - UltraSPARC T1 (niagara) support requires >= glibc 2.8
|
||||
# - UltraSPARC T2 (niagara2) support requires >= glibc 2.7
|
||||
|
||||
if is_crosscompile || [[ ${PROFILE_ARCH} == "sparc64" ]] || { has_multilib_profile && ! tc-is-cross-compiler; } ; then
|
||||
case ${ABI}:${CTARGET} in
|
||||
sparc64:*|\
|
||||
default:sparc64*)
|
||||
filter-flags -Wa,-xarch -Wa,-A
|
||||
|
||||
if is-flagq "-mcpu=niagara2" && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.7 ]] ; then
|
||||
CTARGET_OPT="sparc64v2-unknown-linux-gnu"
|
||||
append-flags "-Wa,-xarch=v9b"
|
||||
export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9b"
|
||||
elif { is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2" ; } && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.6 ]] ; then
|
||||
CTARGET_OPT="sparc64v-unknown-linux-gnu"
|
||||
append-flags "-Wa,-xarch=v9b"
|
||||
export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9b"
|
||||
elif is-flagq "-mcpu=ultrasparc3" || is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2"; then
|
||||
CTARGET_OPT="sparc64b-unknown-linux-gnu"
|
||||
append-flags "-Wa,-xarch=v9b"
|
||||
export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9b"
|
||||
else
|
||||
CTARGET_OPT="sparc64-unknown-linux-gnu"
|
||||
append-flags "-Wa,-xarch=v9a"
|
||||
export ASFLAGS="${ASFLAGS} -Wa,-xarch=v9a"
|
||||
local cpu
|
||||
case ${CTARGET} in
|
||||
sparc64-*)
|
||||
case $(get-flag mcpu) in
|
||||
niagara[234])
|
||||
if version_is_at_least 2.8 ; then
|
||||
cpu="sparc64v2"
|
||||
elif version_is_at_least 2.4 ; then
|
||||
cpu="sparc64v"
|
||||
elif version_is_at_least 2.2.3 ; then
|
||||
cpu="sparc64b"
|
||||
fi
|
||||
;;
|
||||
niagara)
|
||||
if version_is_at_least 2.4 ; then
|
||||
cpu="sparc64v"
|
||||
elif version_is_at_least 2.2.3 ; then
|
||||
cpu="sparc64b"
|
||||
fi
|
||||
;;
|
||||
ultrasparc3)
|
||||
cpu="sparc64b"
|
||||
;;
|
||||
*)
|
||||
if is-flagq "-mcpu=niagara2" && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.7 ]] ; then
|
||||
CTARGET_OPT="sparcv9v2-unknown-linux-gnu"
|
||||
elif { is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2" ; } && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.6 ]] ; then
|
||||
CTARGET_OPT="sparcv9v-unknown-linux-gnu"
|
||||
elif is-flagq "-mcpu=ultrasparc3" || is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2"; then
|
||||
CTARGET_OPT="sparcv9b-unknown-linux-gnu"
|
||||
else
|
||||
CTARGET_OPT="sparcv9-unknown-linux-gnu"
|
||||
fi
|
||||
# We need to force at least v9a because the base build doesn't
|
||||
# work with just v9.
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=19477
|
||||
[[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
sparc-*)
|
||||
case $(get-flag mcpu) in
|
||||
niagara[234])
|
||||
if version_is_at_least 2.8 ; then
|
||||
cpu="sparcv9v2"
|
||||
elif version_is_at_least 2.4 ; then
|
||||
cpu="sparcv9v"
|
||||
elif version_is_at_least 2.2.3 ; then
|
||||
cpu="sparcv9b"
|
||||
else
|
||||
if is-flagq "-mcpu=niagara2" && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.7 ]] ; then
|
||||
CTARGET_OPT="sparcv9v2-unknown-linux-gnu"
|
||||
elif { is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2" ; } && [[ ${GLIBCMAJOR}.${GLIBCMINOR} > 2.6 ]] ; then
|
||||
CTARGET_OPT="sparcv9v-unknown-linux-gnu"
|
||||
elif is-flagq "-mcpu=ultrasparc3" || is-flagq "-mcpu=niagara" || is-flagq "-mcpu=niagara2"; then
|
||||
CTARGET_OPT="sparcv9b-unknown-linux-gnu"
|
||||
elif { is_crosscompile && want_nptl; } || is-flagq "-mcpu=ultrasparc2" || is-flagq "-mcpu=ultrasparc"; then
|
||||
CTARGET_OPT="sparcv9-unknown-linux-gnu"
|
||||
cpu="sparcv9"
|
||||
fi
|
||||
;;
|
||||
niagara)
|
||||
if version_is_at_least 2.4 ; then
|
||||
cpu="sparcv9v"
|
||||
elif version_is_at_least 2.2.3 ; then
|
||||
cpu="sparcv9b"
|
||||
else
|
||||
cpu="sparcv9"
|
||||
fi
|
||||
;;
|
||||
ultrasparc3)
|
||||
cpu="sparcv9b"
|
||||
;;
|
||||
v9|ultrasparc)
|
||||
cpu="sparcv9"
|
||||
;;
|
||||
v8|supersparc|hypersparc|leon|leon3)
|
||||
cpu="sparcv8"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
[[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
@ -298,8 +318,9 @@ setup_env() {
|
||||
unset LD_RUN_PATH
|
||||
unset LD_ASSUME_KERNEL
|
||||
|
||||
multilib_env ${CTARGET_OPT:-${CTARGET}}
|
||||
if is_crosscompile || tc-is-cross-compiler ; then
|
||||
multilib_env ${CTARGET_OPT:-${CTARGET}}
|
||||
|
||||
if ! use multilib ; then
|
||||
MULTILIB_ABIS=${DEFAULT_ABI}
|
||||
else
|
||||
|
@ -6,9 +6,9 @@ eblit-glibc-pkg_postinst() {
|
||||
# nothing to do if just installing headers
|
||||
just_headers && return
|
||||
|
||||
if ! tc-is-cross-compiler && [[ -x ${ROOT}/usr/sbin/iconvconfig ]] ; then
|
||||
if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then
|
||||
# Generate fastloading iconv module configuration file.
|
||||
"${ROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}"
|
||||
"${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}"
|
||||
fi
|
||||
|
||||
if ! is_crosscompile && [[ ${ROOT} == "/" ]] ; then
|
||||
|
@ -11,7 +11,7 @@
|
||||
glibc_sanity_check() {
|
||||
cd / #228809
|
||||
|
||||
# We enter ${D} so to avoid trouble if the path contains
|
||||
# We enter ${ED} so to avoid trouble if the path contains
|
||||
# special characters; for instance if the path contains the
|
||||
# colon character (:), then the linker will try to split it
|
||||
# and look for the libraries in an unexpected place. This can
|
||||
@ -49,7 +49,7 @@ eblit-glibc-pkg_preinst() {
|
||||
## COREOS: host.conf is not installed
|
||||
|
||||
[[ ${ROOT} != "/" ]] && return 0
|
||||
[[ -d ${D}/$(get_libdir) ]] || return 0
|
||||
[[ -d ${ED}/$(get_libdir) ]] || return 0
|
||||
glibc_sanity_check
|
||||
|
||||
# For newer EAPIs, this was run in pkg_pretend.
|
||||
|
@ -56,13 +56,15 @@ eblit-glibc-pkg_pretend() {
|
||||
check_devpts
|
||||
fi
|
||||
|
||||
# prevent native builds from downgrading ... maybe update to allow people
|
||||
# to change between diff -r versions ? (2.3.6-r4 -> 2.3.6-r2)
|
||||
# Prevent native builds from downgrading.
|
||||
if [[ ${MERGE_TYPE} != "buildonly" ]] && \
|
||||
[[ ${ROOT} == "/" ]] && \
|
||||
[[ ${CBUILD} == ${CHOST} ]] && \
|
||||
[[ ${CHOST} == ${CTARGET} ]] ; then
|
||||
if has_version '>'${CATEGORY}/${PF} ; then
|
||||
# The high rev # is to allow people to downgrade between -r# versions.
|
||||
# We want to block 2.20->2.19, but 2.20-r3->2.20-r2 should be fine.
|
||||
# Hopefully we never actually use a r# this high.
|
||||
if has_version ">${CATEGORY}/${P}-r10000" ; then
|
||||
eerror "Sanity check to keep you from breaking your system:"
|
||||
eerror " Downgrading glibc is not supported and a sure way to destruction"
|
||||
die "aborting to save your system"
|
||||
@ -72,7 +74,7 @@ eblit-glibc-pkg_pretend() {
|
||||
then
|
||||
eerror "Your patched vendor kernel is broken. You need to get an"
|
||||
eerror "update from whoever is providing the kernel to you."
|
||||
eerror "http://sourceware.org/bugzilla/show_bug.cgi?id=5227"
|
||||
eerror "https://sourceware.org/bugzilla/show_bug.cgi?id=5227"
|
||||
eerror "http://bugs.gentoo.org/262698"
|
||||
die "keeping your system alive, say thank you"
|
||||
fi
|
||||
|
@ -105,23 +105,35 @@ glibc_do_configure() {
|
||||
$(use_enable profile)
|
||||
$(use_with gd)
|
||||
--with-headers=$(alt_build_headers)
|
||||
--prefix=/usr
|
||||
--libdir=/usr/$(get_libdir)
|
||||
--mandir=/usr/share/man
|
||||
--infodir=/usr/share/info
|
||||
--libexecdir=/usr/$(get_libdir)/misc/glibc
|
||||
--prefix="${EPREFIX}/usr"
|
||||
--sysconfdir="${EPREFIX}/etc"
|
||||
--localstatedir="${EPREFIX}/var"
|
||||
--libdir='$(prefix)'/$(get_libdir)
|
||||
--mandir='$(prefix)'/share/man
|
||||
--infodir='$(prefix)'/share/info
|
||||
--libexecdir='$(libdir)'/misc/glibc
|
||||
--with-bugurl=http://bugs.gentoo.org/
|
||||
--with-pkgversion="$(glibc_banner)"
|
||||
$(use_multiarch || echo --disable-multi-arch)
|
||||
--enable-obsolete-rpc
|
||||
$(in_iuse rpc && use_enable rpc obsolete-rpc || echo --enable-obsolete-rpc)
|
||||
$(in_iuse systemtap && use_enable systemtap)
|
||||
$(in_iuse nscd && use_enable nscd)
|
||||
${EXTRA_ECONF}
|
||||
)
|
||||
|
||||
# We rely on sys-libs/timezone-data for timezone tools normally.
|
||||
if version_is_at_least 2.23 ; then
|
||||
myconf+=( $(use_enable vanilla timezone-tools) )
|
||||
fi
|
||||
|
||||
# These libs don't have configure flags.
|
||||
ac_cv_lib_audit_audit_log_user_avc_message=$(in_iuse audit && usex audit || echo no)
|
||||
ac_cv_lib_cap_cap_init=$(in_iuse caps && usex caps || echo no)
|
||||
|
||||
# There is no configure option for this and we need to export it
|
||||
# since the glibc build will re-run configure on itself
|
||||
export libc_cv_slibdir=/$(get_libdir)
|
||||
export libc_cv_rootsbindir="${EPREFIX}/sbin"
|
||||
export libc_cv_slibdir="${EPREFIX}/$(get_libdir)"
|
||||
|
||||
# We take care of patching our binutils to use both hash styles,
|
||||
# and many people like to force gnu hash style only, so disable
|
||||
@ -199,6 +211,9 @@ toolchain-glibc_headers_configure() {
|
||||
libc_cv_z_relro=yes
|
||||
libc_mips_abi=${ABI}
|
||||
libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard)
|
||||
# These libs don't have configure flags.
|
||||
ac_cv_lib_audit_audit_log_user_avc_message=no
|
||||
ac_cv_lib_cap_cap_init=no
|
||||
)
|
||||
einfo "Forcing cached settings:"
|
||||
for v in "${vars[@]}" ; do
|
||||
@ -224,7 +239,7 @@ toolchain-glibc_headers_configure() {
|
||||
--build=${CBUILD_OPT:-${CBUILD}}
|
||||
--host=${CTARGET_OPT:-${CTARGET}}
|
||||
--with-headers=$(alt_build_headers)
|
||||
--prefix=/usr
|
||||
--prefix="${EPREFIX}/usr"
|
||||
${EXTRA_ECONF}
|
||||
)
|
||||
|
||||
|
@ -102,7 +102,7 @@ toolchain-glibc_src_install() {
|
||||
has ${ldso_abi} $(get_install_abis) || continue
|
||||
|
||||
ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}"
|
||||
if [[ ! -L ${D}/${ldso_name} && ! -e ${D}/${ldso_name} ]] ; then
|
||||
if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then
|
||||
dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name}
|
||||
fi
|
||||
done
|
||||
@ -111,7 +111,7 @@ toolchain-glibc_src_install() {
|
||||
# binary to be setuid. This is because the default owners/perms will be
|
||||
# exactly what we want.
|
||||
if in_iuse suid && ! use suid ; then
|
||||
find "${D}" -name pt_chown -exec chmod -s {} +
|
||||
find "${ED}" -name pt_chown -exec chmod -s {} +
|
||||
fi
|
||||
|
||||
#################################################################
|
||||
@ -182,7 +182,7 @@ toolchain-glibc_headers_install() {
|
||||
# Make sure we install the sys-include symlink so that when
|
||||
# we build a 2nd stage cross-compiler, gcc finds the target
|
||||
# system headers correctly. See gcc/doc/gccinstall.info
|
||||
dosym usr/include /usr/${CTARGET}/sys-include
|
||||
dosym usr/include $(alt_prefix)/sys-include
|
||||
}
|
||||
|
||||
src_strip() {
|
||||
|
@ -43,10 +43,10 @@ eblit-glibc-src_prepare() {
|
||||
|
||||
# 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
|
||||
# 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:
|
||||
# http://sourceware.org/ml/libc-alpha/2012-05/msg01865.html
|
||||
# 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
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/sbin/runscript
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2005 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Id$
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Id$
|
||||
|
||||
@ -27,7 +27,7 @@ case ${PV} in
|
||||
;;
|
||||
esac
|
||||
GCC_BOOTSTRAP_VER="4.7.3-r1"
|
||||
PATCH_VER="6" # Gentoo patchset
|
||||
PATCH_VER="13" # Gentoo patchset
|
||||
: ${NPTL_KERN_VER:="2.6.32"} # min kernel version nptl requires
|
||||
|
||||
IUSE="debug gd hardened multilib nscd selinux systemtap profile suid vanilla crosscompile_opts_headers-only"
|
||||
@ -155,20 +155,20 @@ done
|
||||
|
||||
eblit-src_unpack-pre() {
|
||||
[[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib && unpack gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2
|
||||
# Bug 558636 we don't apply the pie works around for 2.22. It shoud have the support. #558636
|
||||
GLIBC_PATCH_EXCLUDE+=" 00_all_0002-workaround-crash-when-handling-signals-in-static-PIE.patch"
|
||||
GLIBC_PATCH_EXCLUDE+=" 00_all_0012-disable-PIE-when-checking-for-PIC-default.patch"
|
||||
}
|
||||
|
||||
eblit-src_prepare-post() {
|
||||
cd "${S}"
|
||||
|
||||
epatch "${FILESDIR}"/2.19/${PN}-2.19-ia64-gcc-4.8-reloc-hack.patch #503838
|
||||
## COREOS: features and bug fixes missing from the Gentoo patch set.
|
||||
epatch "${FILESDIR}"/2.23/glibc-2.23-gshadow-handle-erange.patch
|
||||
epatch "${FILESDIR}"/2.23/glibc-2.23-c-utf8-locale.patch
|
||||
|
||||
if use hardened ; then
|
||||
einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
|
||||
gcc-specs-pie && epatch "${FILESDIR}"/2.17/glibc-2.17-hardened-pie.patch
|
||||
epatch "${FILESDIR}"/2.20/glibc-2.20-hardened-inittls-nosysenter.patch
|
||||
|
||||
# We don't enable these for non-hardened as the output is very terse --
|
||||
# it only states that a crash happened. The default upstream behavior
|
||||
# includes backtraces and symbols.
|
@ -1,13 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>toolchain</herd>
|
||||
<maintainer type="project">
|
||||
<email>toolchain@gentoo.org</email>
|
||||
<name>Gentoo Toolchain Project</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name='debug'>When USE=hardened, allow fortify/stack violations to dump core (SIGABRT) and not kill self (SIGKILL)</flag>
|
||||
<flag name='gd'>build memusage and memusagestat tools</flag>
|
||||
<flag name='nscd'>Build, and enable support for, the Name Service Cache Daemon</flag>
|
||||
<flag name='suid'>Make internal pt_chown helper setuid -- not needed if using Linux and have /dev/pts mounted with gid=5</flag>
|
||||
<flag name='systemtap'>enable systemtap static probe points</flag>
|
||||
<flag name="debug">When USE=hardened, allow fortify/stack violations to dump core (SIGABRT) and not kill self (SIGKILL)</flag>
|
||||
<flag name="gd">build memusage and memusagestat tools</flag>
|
||||
<flag name="nscd">Build, and enable support for, the Name Service Cache Daemon</flag>
|
||||
<flag name="rpc">Enable obsolete RPC/NIS layers (disabling is experimental -- see bug 381391)</flag>
|
||||
<flag name="suid">Make internal pt_chown helper setuid -- not needed if using Linux and have /dev/pts mounted with gid=5</flag>
|
||||
<flag name="systemtap">enable systemtap static probe points</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="cpe">cpe:/a:gnu:glibc</remote-id>
|
||||
|
Loading…
x
Reference in New Issue
Block a user