diff options
author | Stuart Shelton <stuart@shelton.me> | 2018-04-27 20:20:24 +0100 |
---|---|---|
committer | Stuart Shelton <stuart@shelton.me> | 2018-04-27 20:20:24 +0100 |
commit | 2b81cab98e5b12ea74e5dcee9d9678be4f101a59 (patch) | |
tree | 3c66a5ee21ae15ea5adf1f6e59bbbe08c80da681 /sys-libs | |
parent | Add sys-apps/haveged-1.9.2-r1 (diff) | |
download | srcshelton-2b81cab98e5b12ea74e5dcee9d9678be4f101a59.tar.gz srcshelton-2b81cab98e5b12ea74e5dcee9d9678be4f101a59.tar.bz2 srcshelton-2b81cab98e5b12ea74e5dcee9d9678be4f101a59.zip |
Add sys-libs/glibc-2.25-r11
Diffstat (limited to 'sys-libs')
-rw-r--r-- | sys-libs/glibc/Manifest | 2 | ||||
-rw-r--r-- | sys-libs/glibc/glibc-2.25-r11.ebuild | 232 |
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 +} |