diff options
-rw-r--r-- | sys-libs/glibc/Manifest | 2 | ||||
-rw-r--r-- | sys-libs/glibc/glibc-2.25-r10.ebuild | 223 |
2 files changed, 225 insertions, 0 deletions
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest index b4bcf9fa..6345a540 100644 --- a/sys-libs/glibc/Manifest +++ b/sys-libs/glibc/Manifest @@ -43,6 +43,7 @@ DIST glibc-2.23-patches-8.tar.bz2 304199 SHA256 6110777176abfb8d287d82804d98e007 DIST glibc-2.23.tar.xz 13455260 SHA256 94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 SHA512 b82953388cd028e174cb08f082557bbce0dad8b67b17d31b29f90102fd52a51e03d591448ecb64882a1c1d5303afffc7f6ede85cee4c784a9284fbc9b4ad26cf WHIRLPOOL 7c7e3bf55a89a04bac917b9ca5a1cbb1613f22c427d2766f114b5a36f9635856005b823852ef5d3b73462b577fe4e5865e68e7b64633d48a95fa1e5eaa831a71 DIST glibc-2.25-patches-11.tar.bz2 64221 SHA256 38c76c844238a7bbaecc85b359e67af6a98a1614f3196f25d85f83dec4358e99 SHA512 cbbbca9653f55f0cb3b73c38c979cb439c87b172819f3e999d2b435d59cd2bef2c89f11a398300c53f447ad433ee87f47a0f3e890c78f8694705c788455325dd WHIRLPOOL e61203ac129d7283f3beda1421e1365da58c229bcb6b6a1f8b71755d9ea0e2bfb64b8be69ab7698861a593d4b98ab6163d574f3c215fba0a0d9e6a1b15d2eed5 DIST glibc-2.25-patches-12.tar.bz2 65396 SHA256 60a8901ceab4066661285cdbf7559d3a1f66bf468c5c1a5ecdde7f8ead282d3e SHA512 6af8c304ba70b42dfda294873d9a138d6c98e7a46496e305b2cac99a085d1ad3d00315162d1e1458e651de95e158bd35be74406a3f44fde13182e30baa663fcb WHIRLPOOL 96684d379d65ca6e4da7d397d4b803e0b0516080223de86080d6bbf3cae6a17b9fc8922d6fc2071b3116f35136378d85eb6671c7d9f7cf0f2135b66d1573bb90 +DIST glibc-2.25-patches-13.tar.bz2 71481 SHA256 52564c4c0dd608d6bffacdcccc0a312b079221ce8cdc36fe2a42b26d0f0e6a90 SHA512 7c80e4aba9edf0310e1707b03a6945f657d71267a4d0d67c24b979c841544a6a623d7c2dbb0a0d55863e25831439d717d096ecf377f936b731baeb04f21704a7 WHIRLPOOL 21c52600d9d554a2deb3521ab5df071f5777b7373e2b5a89f137ec649d0e60a8d4daa42b197e97522dc89bb7c12d63b85473717a3c5216fad9df5be313911d0f DIST glibc-2.25.tar.xz 13873900 SHA256 067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0 SHA512 5b7a2418d5b8a1b6a907c6c7fb6477ee2a473151cb45e03d0d4cdd9a33497c90b1ee39e2e7e885e2b25743dcd3747336ef114b4a73eb001da1fd79f29e0f9a6e WHIRLPOOL dc2fafaa4a0e5581268338453838a03ed0c5e7a2af844e8fb7086ab8d3ae48efbdbe6f25db1d089ae669cd2f8b0412f690d965506753d86f8525da2df59b7953 EBUILD glibc-2.17.ebuild 9868 SHA256 299508b4797c935349c500d35b3c0e917287b367db55357a9fb10b9e03d403a2 SHA512 78cee52cc1d0499afdc889c205d3affe7eb41f8214099abd9a68e37c20692fe52c7172be4c4010cb1ad4f8d92af81a8668972752b49960604109d58cce166841 WHIRLPOOL 2aaa77633f4462a556ce4c5fe3d90705711779d30db0e5f8d68d4c49b8f6c254a748a7723fe956c4c63458477a46b37b0203417025e68d2e7473c3deef042480 EBUILD glibc-2.19-r1.ebuild 9781 SHA256 2ae4be63575708265bc5bb1a9dfd7da08469f4edbb6574a92334d1199302935b SHA512 51f56c39b2401d5d1d464625fd636ca62cfcb1c2410a8177a1a7c9a5439e3c43d4eb5f1db214848500f63b0404a29611a4627f05cd3867d42c0192539d14cfc5 WHIRLPOOL e5606ba3b6f5ee66e1c7df9ecde86a377e76a3293929643d297df2c08497a3dfe327de8a153489144d3faccdc99680e859bc4210908e77def4566ed108ecf71c @@ -53,5 +54,6 @@ EBUILD glibc-2.21-r2.ebuild 7803 SHA256 666533a30d5bbefb934af83bdee2827f6663617a EBUILD glibc-2.22-r4.ebuild 9363 SHA256 67bee8419cc0542bea3d480d969fa455bbee5f6ee71bf7ae0cd5c8baa582b376 SHA512 5e3722abc69f34da394ecdee3adad991a2cc1fc191e88846389ddbb080d691843d907044f245626d76732c0f1ab1328148ed30cf3b339f22232b2035dd48e65c WHIRLPOOL 723c8319d370b5bbb824caf7db9c8c5153c7427b993392a661acc961d2fc52ef517526dedeeb5c822a9e5865def77fe4a1121006d4fefc414e964e0999fe109c EBUILD glibc-2.23-r3.ebuild 7735 SHA256 0641cde2e00a4ade51293b7e22a3ad7e8eff2060c5c9836a27cb98b7e72a2c91 SHA512 e25e9a22da6f502051a618b39ba39a8b56f5d7fae20db1e72325e70d3e01a80e984007e15e5d02f86a8f233c8e694e5df4315c6b050556165bcdb18405ddc3f4 WHIRLPOOL 4bfc9647a5b204afb215cf491f3b6474f503afdd08e49ac8909916bc68a525b60b570a3df7dd305741cbd406a4da20cc2c76645871f447549e7861d2d6dc54af EBUILD glibc-2.23-r4.ebuild 7856 SHA256 dbde0163fb246c1aba79091094182cfc6dedbb103935ee83a2c8b57176a40459 SHA512 dda7f365b0356e37e74f38d56406bc9486b43985ed3a9d4d51d43a17ca77edff81336391bd7636e7632f38b7df0128b6bdecc2707d1a87f9825bc6c83df62189 WHIRLPOOL 77f2910c6770b152deb99d1866083ff8b5ef9aa1df0976b84a29a92d62a3f1c72b77d3fb4a7b336cb7d3e7de858c5df8ddfd2b5efc873bedc9bb6265681ed52d +EBUILD glibc-2.25-r10.ebuild 8035 SHA256 c7f4868ab0a76a1352a14e7e7d59f2609e5eee3715c37fb33a35a0cab6dbddce SHA512 1c0607ae5dd9221ed04f95d97e908da6ecded354450be7505d5dd2046bfefd4d3e6e5e62596fe640a9cc69d0863d863a3cb56d27b053fe6c033973864a2cdee2 WHIRLPOOL 5fc71625fb59e4244d82344cebe92fba8e1690b8d5e3e8d67274b76502410b1b5ec824f5ac194c5762bf9870ed5dd3330b64882c5d3ee4f3865cf8493c28f156 EBUILD glibc-2.25-r8.ebuild 8070 SHA256 53c8f1dcdfcef6e85a743dad0720deff2e8f9659fb9f092223d600b1a1ec16a1 SHA512 6ad57b1a37f7b73cc158d79b816eef8fdb039c742f21dbed3bcd57c0640fc111635c5ed1bf5b4c94fe724896caf670e1a6c88e3c7259ed3481c664b7b8cd690c WHIRLPOOL a56961a5f2d0c061c07d2111f2900f40ce07720029476e9fe6f5bfb951879408243233fcb2ddb3d9ce5bd1beb8889302fc25f2601e171bd182d00de4ff9eaea9 EBUILD glibc-2.25-r9.ebuild 8029 SHA256 39b37ca27bf27c3fe336bea6c66f639cf7fb1f40d01c983e7a4e6d13abf79f2e SHA512 aa5d16319418f3390a0c6db7524d044f4ae286fe028f00b1a0a1e09667631470bdc15327285e09c5d0891c0353b5426cd1d19d9af7d2a2a49b9ec4771dc66e75 WHIRLPOOL e69b78c8adca74f7a78231d34f7b79a02e86bc0b3c53846333768ee089b147d4a97a634ff5be48ef7aae6a9e9bea400b305bd31cfa141b40a430ee2446636349 diff --git a/sys-libs/glibc/glibc-2.25-r10.ebuild b/sys-libs/glibc/glibc-2.25-r10.ebuild new file mode 100644 index 00000000..053bb7e4 --- /dev/null +++ b/sys-libs/glibc/glibc-2.25-r10.ebuild @@ -0,0 +1,223 @@ +# 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="13" # 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 +} |