aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-libs/glibc/Manifest2
-rw-r--r--sys-libs/glibc/glibc-2.25-r11.ebuild232
2 files changed, 234 insertions, 0 deletions
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index f3e25729..9df2d371 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -45,6 +45,7 @@ DIST glibc-2.23.tar.xz 13455260 BLAKE2B 6658e9d2d07c5cd71be94ef399bfe4d18ef462e4
DIST glibc-2.25-patches-11.tar.bz2 64221 BLAKE2B 13dd8ec797ad11a8d8d4b7a1057ecfe3402988513fed4a442bf50229aaba344d574f54a70a2ceaf53e2537c5f16fdc57905060dc9f27224b8f23e88521adec5e SHA512 cbbbca9653f55f0cb3b73c38c979cb439c87b172819f3e999d2b435d59cd2bef2c89f11a398300c53f447ad433ee87f47a0f3e890c78f8694705c788455325dd
DIST glibc-2.25-patches-12.tar.bz2 65396 BLAKE2B b23d5d681314c03b8dd5ad20516324c1ce5b24deb4d9ce03970dce97b524ee9d3f5d5463f2d6b7693e4c9ef25d006847f960993f55ca082fc961268d05f937ca SHA512 6af8c304ba70b42dfda294873d9a138d6c98e7a46496e305b2cac99a085d1ad3d00315162d1e1458e651de95e158bd35be74406a3f44fde13182e30baa663fcb
DIST glibc-2.25-patches-13.tar.bz2 71481 BLAKE2B bf5691afabf03b579b8d634da30a2a967ab62d5e470a23b0946ff3354aa974b3b65821aca2f33dd30dd864a82459f4750178bf6ae01a5117ccfde62efd8f594e SHA512 7c80e4aba9edf0310e1707b03a6945f657d71267a4d0d67c24b979c841544a6a623d7c2dbb0a0d55863e25831439d717d096ecf377f936b731baeb04f21704a7
+DIST glibc-2.25-patches-15.tar.bz2 78320 BLAKE2B 70c62cc10db13e2844de4d8a18972e0f4d01ba52fbd40db57c11d7b1c2c0d571b894f01e762bb26632fd696a77c299ef0766e2f129d2eda896f58325a754a13c SHA512 7204218ea82b677e0f278c4752ddb90aa0c08ac2349d061de81ec91dac204b0f10fe223d7b1055b9e0c21dac97c835f913a90c0168a5000d3be00dd20027c185
DIST glibc-2.25.tar.xz 13873900 BLAKE2B 73ef792fff059f6ad154c9af2155ea15b7869ec1b93e557b6c58129bfb50f863c06f8b49425d75fd2df537dd9c4a68bad790cff770c50a6889732d66f507d349 SHA512 5b7a2418d5b8a1b6a907c6c7fb6477ee2a473151cb45e03d0d4cdd9a33497c90b1ee39e2e7e885e2b25743dcd3747336ef114b4a73eb001da1fd79f29e0f9a6e
EBUILD glibc-2.17.ebuild 9868 BLAKE2B db3470af5d94039711e513d63a6b3d583b175be4b021d9f7e5eda2fd8b522b0967e58b133800ca4be77dffb61de37b3bb80c20d7062ec80f8a4ba3799ba7b9d0 SHA512 78cee52cc1d0499afdc889c205d3affe7eb41f8214099abd9a68e37c20692fe52c7172be4c4010cb1ad4f8d92af81a8668972752b49960604109d58cce166841
EBUILD glibc-2.19-r1.ebuild 9781 BLAKE2B 15ac7bf31c5d268491c2fd99f9b7591b9a128ea1b2d7c67857fafd8f9b1ddd6f1c83c54310ab1793f455e2a576d41a1c27504ab02fed802b921ea22946a36565 SHA512 51f56c39b2401d5d1d464625fd636ca62cfcb1c2410a8177a1a7c9a5439e3c43d4eb5f1db214848500f63b0404a29611a4627f05cd3867d42c0192539d14cfc5
@@ -56,5 +57,6 @@ EBUILD glibc-2.22-r4.ebuild 9363 BLAKE2B f09acd7e618c7806d9809b5814a09cc97c0a3ba
EBUILD glibc-2.23-r3.ebuild 7735 BLAKE2B 1d9e9a7f62a5677f00d6c07e5039c764eefdd0e5ed239447e6c5a6b492740e24c93abd7467e160b061b3836c03d5074e90f9fa35710275e66af5605fe3fa3e96 SHA512 e25e9a22da6f502051a618b39ba39a8b56f5d7fae20db1e72325e70d3e01a80e984007e15e5d02f86a8f233c8e694e5df4315c6b050556165bcdb18405ddc3f4
EBUILD glibc-2.23-r4.ebuild 7856 BLAKE2B d8352b140f860014857bf36ca133f2cbd468a47ec5784c741a9a88bf92e61a203d1ae331911264617339dbf0e9d2ab927eafb22a7a40de2419fde3025a468234 SHA512 dda7f365b0356e37e74f38d56406bc9486b43985ed3a9d4d51d43a17ca77edff81336391bd7636e7632f38b7df0128b6bdecc2707d1a87f9825bc6c83df62189
EBUILD glibc-2.25-r10.ebuild 8296 BLAKE2B a0534b89107b61b0271e3cbe958d3f3aacdbd45998630038751dd3f518b1057980e488561631220a24ba76db5658c803364efd3c762021f67866abfb4a87dd27 SHA512 b2e950b76f9274f93c4e1a1db2326730d097e98ae3c6540349670a5d24e267572945f3577543e7241728f38f5c139c04b2012c2a20fefc93d56cc94ab0a33c59
+EBUILD glibc-2.25-r11.ebuild 8297 BLAKE2B 573c9ac661db4d4a9cf4fd9ad07de95d518db459d43e38160eab438d55ebc09a5b975c5f658600d9c92f47c411ced35d4cdf88fa8b9c2c0645d2fb4ac36b5d0d SHA512 99f65568d1bcf9d58ed0d08b279d30b02aba61a28cf95c40349ed9ff783a2eed4653561a4eea0959713162459daef001c2a064adc06910ed20e6450b743fed71
EBUILD glibc-2.25-r8.ebuild 8070 BLAKE2B bca6ef761c12cd0dabd1aab79c6b238f231ce6ff57d32d90462feddf793fe536fabfbbfd73331d3ae0df74766c65b6b885f74b6a5710bb34f6f8d128ac563869 SHA512 6ad57b1a37f7b73cc158d79b816eef8fdb039c742f21dbed3bcd57c0640fc111635c5ed1bf5b4c94fe724896caf670e1a6c88e3c7259ed3481c664b7b8cd690c
EBUILD glibc-2.25-r9.ebuild 8029 BLAKE2B 94d0c00d9a794f347c822a052a2336be31a5d31045409333ed867b896dffe663c76a217739045c7eccb371e93eae542a4ff55da769896e8331c138b6aec65708 SHA512 aa5d16319418f3390a0c6db7524d044f4ae286fe028f00b1a0a1e09667631470bdc15327285e09c5d0891c0353b5426cd1d19d9af7d2a2a49b9ec4771dc66e75
diff --git a/sys-libs/glibc/glibc-2.25-r11.ebuild b/sys-libs/glibc/glibc-2.25-r11.ebuild
new file mode 100644
index 00000000..a711fd7e
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.25-r11.ebuild
@@ -0,0 +1,232 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit toolchain-glibc
+
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+HOMEPAGE="https://www.gnu.org/software/libc/libc.html"
+
+LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
+KEYWORDS="alpha amd64 ~arm arm64 ~hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86"
+RESTRICT="strip" # strip ourself #46186
+EMULTILIB_PKG="true"
+
+# Configuration variables
+RELEASE_VER=""
+case ${PV} in
+9999*)
+ EGIT_REPO_URIS="git://sourceware.org/git/glibc.git"
+ EGIT_SOURCEDIRS="${S}"
+ inherit git-2
+ ;;
+*)
+ RELEASE_VER=${PV}
+ ;;
+esac
+GCC_BOOTSTRAP_VER="4.7.3-r1"
+# patches live at https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/src/patchsets/glibc/
+PATCH_VER="15" # Gentoo patchset
+: ${NPTL_KERN_VER:="2.6.32"} # min kernel version nptl requires
+
+GLIBC_PATCH_EXCLUDE+=" 0005_all_sys-types.h-drop-sys-sysmacros.h-include.patch"
+
+IUSE="audit caps debug gd hardened multilib nscd +rpc selinux systemtap profile suid vanilla headers-only"
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+# Why SLOT 2.2 you ask yourself while sippin your tea ?
+# Everyone knows 2.2 > 0, duh.
+SLOT="2.2"
+
+# General: We need a new-enough binutils/gcc to match upstream baseline.
+# arch: we need to make sure our binutils/gcc supports TLS.
+COMMON_DEPEND="
+ nscd? ( selinux? (
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap )
+ ) )
+ suid? ( caps? ( sys-libs/libcap ) )
+ selinux? ( sys-libs/libselinux )
+ systemtap? ( dev-util/systemtap )
+"
+DEPEND="${COMMON_DEPEND}
+ >=app-misc/pax-utils-0.1.10
+ !<sys-apps/sandbox-1.6
+ !<sys-apps/portage-2.1.2"
+RDEPEND="${COMMON_DEPEND}
+ !sys-kernel/ps3-sources
+ sys-apps/gentoo-functions
+ !sys-libs/nss-db"
+
+if [[ ${CATEGORY} == cross-* ]] ; then
+ DEPEND+=" !headers-only? (
+ >=${CATEGORY}/binutils-2.24
+ >=${CATEGORY}/gcc-4.7
+ )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers"
+else
+ DEPEND+="
+ >=sys-devel/binutils-2.24
+ >=sys-devel/gcc-4.7
+ virtual/os-headers"
+ RDEPEND+=" vanilla? ( !sys-libs/timezone-data )"
+ PDEPEND+=" !vanilla? ( sys-libs/timezone-data )"
+fi
+
+upstream_uris() {
+ echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
+}
+gentoo_uris() {
+ local devspace="HTTP~vapier/dist/URI HTTP~dilfridge/distfiles/URI HTTP~tamiko/distfiles/URI HTTP~slyfox/distfiles/URI"
+ devspace=${devspace//HTTP/https://dev.gentoo.org/}
+ echo mirror://gentoo/$1 ${devspace//URI/$1}
+}
+SRC_URI=$(
+ [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz
+ [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2
+)
+SRC_URI+=" ${GCC_BOOTSTRAP_VER:+multilib? ( $(gentoo_uris gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2) )}"
+
+src_unpack() {
+ [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib && unpack gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2
+
+ toolchain-glibc_src_unpack
+}
+
+src_prepare() {
+ case $(gcc-fullversion) in
+ 4.8.[0-3]|4.9.0)
+ eerror "You need to switch to a newer compiler; gcc-4.8.[0-3] and gcc-4.9.0 miscompile"
+ eerror "glibc. See https://bugs.gentoo.org/547420 for details."
+ die "need to switch compilers #547420"
+ ;;
+ esac
+
+ toolchain-glibc_src_prepare
+
+ cd "${S}"
+
+ epatch "${FILESDIR}"/2.19/${PN}-2.19-ia64-gcc-4.8-reloc-hack.patch #503838
+
+ if use hardened ; then
+ # 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.
+ einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
+ cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-stack_chk_fail.c debug/stack_chk_fail.c || die
+ cp "${FILESDIR}"/2.25/glibc-2.25-gentoo-chk_fail.c debug/chk_fail.c || die
+
+ if use debug ; then
+ # Allow SIGABRT to dump core on non-hardened systems, or when debug is requested.
+ sed -i \
+ -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
+ debug/Makefile || die
+ fi
+ fi
+
+
+ if ! [[ "${ARCH}" == "amd64" ]]; then
+ einfo "Architecture is not 'amd64' - no updates for x32 ABI required"
+ else
+ einfo "Architecture is 'amd64' - adjusting default paths for potential custom x32 ABI library paths"
+
+ local LD32="$( get_abi_LIBDIR x86 )"
+ local LDx32="$( get_abi_LIBDIR x32 )"
+ local LD64="$( get_abi_LIBDIR amd64 )"
+ local -i LD32l LDx32l LD64l
+ (( LD32l = ${#LD32} + 1 ))
+ (( LDx32l = ${#LDx32} + 1 ))
+ (( LD64l = ${#LD64} + 1 ))
+
+ # In order for this to work, LD64 and LDx32 must share a common root of
+ # LD32. If this is not the case, then sysdeps/unix/sysv/linux/x86_64/dl-cache.h
+ # will need to be re-implemented.
+
+ local LDx32s="${LDx32#${LD32}}"
+ local LD64s="${LD64#${LD32}}"
+
+ einfo "Using the following libdir paths:"
+ einfo " 32-bit libraries in '${LD32}'"
+ einfo " Long-mode 32-bit libraries in '${LDx32}'"
+ einfo " 64-bit libraries in '${LD64}'"
+
+ cd "${S}"
+
+ sed -i \
+ -e "s:/libx32:/${LDx32:-libx32}:g" \
+ sysdeps/unix/sysv/linux/x86_64/x32/configure \
+ || die 'configure patch failed'
+
+ sed -i \
+ -e "/FLAG_ELF_LIBC6/{s:/lib/:/${LD32:-lib}/:}" \
+ -e "/FLAG_ELF_LIBC6/{s:/libx32/:/${LDx32:-libx32}/:}" \
+ -e "/FLAG_ELF_LIBC6/{s:/lib64/:/${LD64:-lib64}/:}" \
+ sysdeps/unix/sysv/linux/x86_64/ldconfig.h \
+ || die 'known_interpreter_names replacement failed'
+
+ # if (len >= 6 && ! memcmp (path + len - 6, "/lib64", 6)) \
+ # { \
+ # len -= 2; \
+ #
+ # else if (len >= 7 \
+ # && ! memcmp (path + len - 7, "/libx32", 7)) \
+ # { \
+ # len -= 3; \
+ #
+ # if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \
+ # { \
+ # memcpy (path + len, "64", 3); \
+ # add_dir (path); \
+ # memcpy (path + len, "x32", 4); \
+ sed -i \
+ -e "/ memcmp /{s:len >= 6 :len >= ${LD64l} : ; s: 6, \"/lib64\", 6): ${LD64l}, \"/${LD64:-lib64}\", ${LD64l}):}" \
+ -e "/len -= 2;/{s:len -= 2;:len -= ${#LD64s};:}" \
+ -e "/else if (len >= 7/{s:len >= 7:len >= ${LDx32l}:}" \
+ -e "/ memcmp /{s: 7, \"/libx32\", 7): ${LDx32l}, \"/${LDx32:-libx32}\", ${LDx32l}):}" \
+ -e "/len -= 3;/{s:len -= 3;:len -= ${#LDx32s};:}" \
+ -e "/ memcmp /{s:len >= 4 :len >= ${LD32l} : ; s: 4, \"/lib\", 4): ${LD32l}, \"/${LD32:-lib}\", ${LD32l}):}" \
+ -e "/memcpy /{s:len, \"64\", 3):len, \"${LD64s}\", $(( ${#LD64s} + 1 ))):}" \
+ -e "/memcpy /{s:len, \"x32\", 4):len, \"${LDx32s}\", $(( ${#LDx32s} + 1 ))):}" \
+ sysdeps/unix/sysv/linux/x86_64/dl-cache.h \
+ || die 'dl-cache.h modification failed'
+
+ einfo "dl-cache.h now contains:"
+ cat sysdeps/unix/sysv/linux/x86_64/dl-cache.h
+ fi
+}
+
+src_install() {
+ toolchain-glibc_src_install
+
+ # toolchain-glibc.eclass runs prefixify_ro and a @PIDFILE@ substitution
+ # on the included 'nscd', although it contains neither of the needed
+ # template tokens.
+ use nscd && newinitd "${FILESDIR}"/nscd.initd nscd
+}