Gentoo Archives: gentoo-commits

From: Mike Frysinger <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/glibc/
Date: Wed, 30 Mar 2016 22:05:53
Message-Id: 1459375281.a24addf0943d176ed8f8ceaac619861c8b30d47a.vapier@gentoo
1 commit: a24addf0943d176ed8f8ceaac619861c8b30d47a
2 Author: Mike Frysinger <vapier <AT> gentoo <DOT> org>
3 AuthorDate: Wed Mar 30 18:44:19 2016 +0000
4 Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
5 CommitDate: Wed Mar 30 22:01:21 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a24addf0
7
8 sys-libs/glibc: drop unused versions
9
10 sys-libs/glibc/Manifest | 2 -
11 sys-libs/glibc/glibc-2.21-r1.ebuild | 198 ------------------------------------
12 sys-libs/glibc/glibc-2.22-r1.ebuild | 197 -----------------------------------
13 3 files changed, 397 deletions(-)
14
15 diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
16 index d4e9a67..428aafa 100644
17 --- a/sys-libs/glibc/Manifest
18 +++ b/sys-libs/glibc/Manifest
19 @@ -7,11 +7,9 @@ DIST glibc-2.19-patches-3.tar.bz2 80664 SHA256 6fb03292e224199e0dd9ba7ee83aca723
20 DIST glibc-2.19.tar.xz 12083312 SHA256 2d3997f588401ea095a0b27227b1d50cdfdd416236f6567b564549d3b46ea2a2 SHA512 9e021fcb3afbb9ace2a0e37fded231a62de861bd766e29d47163a03182e37add718b7acc3963d1c525f9556773e842297725715acde48dcfbaab6e756af1a23d WHIRLPOOL 9581a3a23ebdd56bc559b56b95b7bcd21ca039546ec19c6c0e4e0738597542164fdb21ab1d1f36d5e73a205fb51f0974c7d497972615bce69ae002298f6475b6
21 DIST glibc-2.20-patches-5.tar.bz2 55986 SHA256 3d3eec9ac9b5d0530f9e05614f4646d64ff93a48865b42c156990bea69247cda SHA512 409f59a028127e02f0c9f91107715b540d8d234475830adc17108a02664be232098d119b43bcc8df9b328ab50c1fffb0868d510e6487ce1c34ec2c7c7a78375b WHIRLPOOL b3c41b01af5d8ae8e901ac48ae124e13ff1c76fbeb35315cb9630c648c03d7abbfb753294cbdfe1dc939bda260e24d8450ffb19cfe5c255b32f8c5500f2c43f3
22 DIST glibc-2.20.tar.xz 12283992 SHA256 f84b6d42aecc288d593c397b0a3d02260a33ee686bce0c634eb9b32798f36ba5 SHA512 7a8eea8b71d3ccba766c3f304cab61055446d451ef063309476b26dc40d880562dc33b1b68fbedeedb4b55b84c26415b9202311aaa71ef8c141b6849a814d2fa WHIRLPOOL 042f74d75c62a655ae35348c9cd0bed0845ab199e37a76635eb74c04ed927b5eca77723c38d2dc46f12fca62c1004001887b43946a914b079ad22f6a9cc8daaa
23 -DIST glibc-2.21-patches-5.tar.bz2 34237 SHA256 8f6a5dd094ad2c4b82368ef4b081ce6c634f61ea2783cdc68bcd9250d61682e1 SHA512 19b0e706cee387aa3a9ed40dd20081ffe98eaaf9a5ca027ee4abd3e46c3403af06c5189bd764d8d477cb356507e1142b5fde852ec710cf24e108c307f5843837 WHIRLPOOL 96c4ec00af41c60c238f681ea5448cec4db11dc59b4853eed5ba700aa21f804de2443166aa48d30f76af6b1a2eb74a47a7d1163e2067e5bbdcdbe3e4bf2a38c4
24 DIST glibc-2.21-patches-7.tar.bz2 46894 SHA256 49126df6f4b819f2c315cca0a07e9b8ee7e279257148506d336ccfef5766bbcb SHA512 e4cca3d753c0b9d213c0ed85e3d08cbbf6517862b3a48af987e010abaf5a022b47330040ced183d30b5b934de7587e97b4342e51a6df3d5cfa768bdd8b43b756 WHIRLPOOL b5f4bffdcaf629d735e7498f509bf2130acb18194b18e69747bb6c3e403b221f2163eea3770bb19c05253d7134f70ed4657d7c30c5978f7b5571a3482f9521ad
25 DIST glibc-2.21.tar.xz 12322092 SHA256 aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8 SHA512 8cded6693618bec115f678fcbd0b77556f97dfa8337608f66e37224aefa55b38765ba61cb4d58beea37b5934e5ec8e30bad58613707388484906f2a0ce77997d WHIRLPOOL d07fec32bd92eade065a3b6170932b8bd41d07df4aa69dd5a860ebb9678c22bd1e20bf88b1fc05c3ecc18e709c0a63118e12525dc668e0399d7ef7fe4454702d
26 DIST glibc-2.22-patches-11.tar.bz2 61659 SHA256 eb145a10473594fded895285809eb3bb724c85f70359c1c65c31b49a3c481d0f SHA512 9db3d1185231cf6d2faf96b6dd73650276c61299d533c1768f491e27fdef389501cb84aa4b4a768e087073df5a88ea7a40e2a1882b48b6f92f0a5f87b0f0f244 WHIRLPOOL 100f9ac648e0a2bb0bf210bfe02983bf16c465eef4a5c8432d1422172f244028fdb7f522f1c11e118edc2398d83f88d9bb176d1f2d828d4a7c1f3e04b2353c78
27 -DIST glibc-2.22-patches-9.tar.bz2 37781 SHA256 724ebd9c068af2740b2058dfe6685e4c496c845a9e927efdacd763c22d5d9fbd SHA512 dda6ce3908f4261744178c0a345c016a3b0a7ca1d75063e1b216b6b95aea663f1741391e71966e0ed8018eea1a628786ccd026c6616def721bbedb961d5245e8 WHIRLPOOL 9725fabb933d3b48cdce5df4e5e9ed9bc58f737836405e1345849764ae6013cd2a2ac73a23137e87964d940bd79115f82b777bc807ce4c58a28a247cdf22f68f
28 DIST glibc-2.22.tar.xz 12969072 SHA256 eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948 SHA512 a8719f3a4f8aa5fa81711116fdafbea5082c6dfd85bd8c4cdce60571910263ab422b35bb8b55a84d37ccb146442133ba60a84d453ca4a439c8ccd35419bd051b WHIRLPOOL f7e707b3776fc197a2e7bf5633721925507237b154bbc1f94b9fc303c87e6fc039ff0758da6ee55b4c1a0daaa87c6e594a6c96e7b00a7ba8ae98ee29918709a7
29 DIST glibc-2.23-patches-2.tar.bz2 213334 SHA256 98a892b862164bdb66bebcb1fec8f15c9e57ac88367e095cf8f6b6553d808bfc SHA512 55fdcf8bc7440fd8622af0cc840635ab3e2687d1c8d8c6b2f7f072eb163daf4f8823bb208d68d0d5a312165b4e5add623abc39aaccf5f0bfbddcb3eb6920f3df WHIRLPOOL a20807e1738814fc160b1475ba5f6c60257f9ee2b231bdcfd74439e0ef80c2c6dba3b1840b5f88e7a22bf41829d756b39dd6980f7ed4113d077698dec2f40d2a
30 DIST glibc-2.23.tar.xz 13455260 SHA256 94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 SHA512 b82953388cd028e174cb08f082557bbce0dad8b67b17d31b29f90102fd52a51e03d591448ecb64882a1c1d5303afffc7f6ede85cee4c784a9284fbc9b4ad26cf WHIRLPOOL 7c7e3bf55a89a04bac917b9ca5a1cbb1613f22c427d2766f114b5a36f9635856005b823852ef5d3b73462b577fe4e5865e68e7b64633d48a95fa1e5eaa831a71
31
32 diff --git a/sys-libs/glibc/glibc-2.21-r1.ebuild b/sys-libs/glibc/glibc-2.21-r1.ebuild
33 deleted file mode 100644
34 index 3dcbb52..0000000
35 --- a/sys-libs/glibc/glibc-2.21-r1.ebuild
36 +++ /dev/null
37 @@ -1,198 +0,0 @@
38 -# Copyright 1999-2015 Gentoo Foundation
39 -# Distributed under the terms of the GNU General Public License v2
40 -# $Id$
41 -
42 -EAPI="4"
43 -
44 -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing
45 -
46 -DESCRIPTION="GNU libc6 (also called glibc2) C library"
47 -HOMEPAGE="https://www.gnu.org/software/libc/libc.html"
48 -
49 -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
50 -KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
51 -RESTRICT="strip" # strip ourself #46186
52 -EMULTILIB_PKG="true"
53 -
54 -# Configuration variables
55 -RELEASE_VER=""
56 -case ${PV} in
57 -9999*)
58 - EGIT_REPO_URIS="git://sourceware.org/git/glibc.git"
59 - EGIT_SOURCEDIRS="${S}"
60 - inherit git-2
61 - ;;
62 -*)
63 - RELEASE_VER=${PV}
64 - ;;
65 -esac
66 -GCC_BOOTSTRAP_VER="4.7.3-r1"
67 -PATCH_VER="5" # Gentoo patchset
68 -: ${NPTL_KERN_VER:="2.6.32"} # min kernel version nptl requires
69 -
70 -IUSE="debug gd hardened multilib nscd selinux systemtap profile suid vanilla crosscompile_opts_headers-only"
71 -
72 -# Here's how the cross-compile logic breaks down ...
73 -# CTARGET - machine that will target the binaries
74 -# CHOST - machine that will host the binaries
75 -# CBUILD - machine that will build the binaries
76 -# If CTARGET != CHOST, it means you want a libc for cross-compiling.
77 -# If CHOST != CBUILD, it means you want to cross-compile the libc.
78 -# CBUILD = CHOST = CTARGET - native build/install
79 -# CBUILD != (CHOST = CTARGET) - cross-compile a native build
80 -# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
81 -# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
82 -# For install paths:
83 -# CHOST = CTARGET - install into /
84 -# CHOST != CTARGET - install into /usr/CTARGET/
85 -
86 -export CBUILD=${CBUILD:-${CHOST}}
87 -export CTARGET=${CTARGET:-${CHOST}}
88 -if [[ ${CTARGET} == ${CHOST} ]] ; then
89 - if [[ ${CATEGORY} == cross-* ]] ; then
90 - export CTARGET=${CATEGORY#cross-}
91 - fi
92 -fi
93 -
94 -is_crosscompile() {
95 - [[ ${CHOST} != ${CTARGET} ]]
96 -}
97 -
98 -# Why SLOT 2.2 you ask yourself while sippin your tea ?
99 -# Everyone knows 2.2 > 0, duh.
100 -SLOT="2.2"
101 -
102 -# General: We need a new-enough binutils/gcc to match upstream baseline.
103 -# arch: we need to make sure our binutils/gcc supports TLS.
104 -DEPEND=">=app-misc/pax-utils-0.1.10
105 - !<sys-apps/sandbox-1.6
106 - !<sys-apps/portage-2.1.2
107 - selinux? ( sys-libs/libselinux )"
108 -RDEPEND="!sys-kernel/ps3-sources
109 - sys-apps/gentoo-functions
110 - selinux? ( sys-libs/libselinux )
111 - !sys-libs/nss-db"
112 -
113 -if [[ ${CATEGORY} == cross-* ]] ; then
114 - DEPEND+=" !crosscompile_opts_headers-only? (
115 - >=${CATEGORY}/binutils-2.24
116 - >=${CATEGORY}/gcc-4.6
117 - )"
118 - [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers"
119 -else
120 - DEPEND+="
121 - >=sys-devel/binutils-2.24
122 - >=sys-devel/gcc-4.6
123 - virtual/os-headers"
124 - RDEPEND+=" vanilla? ( !sys-libs/timezone-data )"
125 - PDEPEND+=" !vanilla? ( sys-libs/timezone-data )"
126 -fi
127 -
128 -upstream_uris() {
129 - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
130 -}
131 -gentoo_uris() {
132 - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
133 - devspace=${devspace//HTTP/https://dev.gentoo.org/}
134 - echo mirror://gentoo/$1 ${devspace//URI/$1}
135 -}
136 -SRC_URI=$(
137 - [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz
138 - [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2
139 -)
140 -SRC_URI+=" ${GCC_BOOTSTRAP_VER:+multilib? ( $(gentoo_uris gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2) )}"
141 -
142 -# eblit-include [--skip] <function> [version]
143 -eblit-include() {
144 - local skipable=false
145 - [[ $1 == "--skip" ]] && skipable=true && shift
146 - [[ $1 == pkg_* ]] && skipable=true
147 -
148 - local e v func=$1 ver=$2
149 - [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
150 - for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
151 - e="${FILESDIR}/eblits/${func}${v}.eblit"
152 - if [[ -e ${e} ]] ; then
153 - source "${e}"
154 - return 0
155 - fi
156 - done
157 - ${skipable} && return 0
158 - die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
159 -}
160 -
161 -# eblit-run-maybe <function>
162 -# run the specified function if it is defined
163 -eblit-run-maybe() {
164 - [[ $(type -t "$@") == "function" ]] && "$@"
165 -}
166 -
167 -# eblit-run <function> [version]
168 -# aka: src_unpack() { eblit-run src_unpack ; }
169 -eblit-run() {
170 - eblit-include --skip common "${*:2}"
171 - eblit-include "$@"
172 - eblit-run-maybe eblit-$1-pre
173 - eblit-${PN}-$1
174 - eblit-run-maybe eblit-$1-post
175 -}
176 -
177 -src_unpack() { eblit-run src_unpack ; }
178 -src_prepare() { eblit-run src_prepare ; }
179 -src_configure() { eblit-run src_configure ; }
180 -src_compile() { eblit-run src_compile ; }
181 -src_test() { eblit-run src_test ; }
182 -src_install() { eblit-run src_install ; }
183 -
184 -# FILESDIR might not be available during binpkg install
185 -for x in pretend setup {pre,post}inst ; do
186 - e="${FILESDIR}/eblits/pkg_${x}.eblit"
187 - if [[ -e ${e} ]] ; then
188 - . "${e}"
189 - eval "pkg_${x}() { eblit-run pkg_${x} ; }"
190 - fi
191 -done
192 -
193 -eblit-src_unpack-pre() {
194 - [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib && unpack gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2
195 -}
196 -
197 -eblit-src_prepare-post() {
198 - cd "${S}"
199 -
200 - epatch "${FILESDIR}"/2.19/${PN}-2.19-ia64-gcc-4.8-reloc-hack.patch #503838
201 -
202 - if use hardened ; then
203 - einfo "Patching to get working PIE binaries on PIE (hardened) platforms"
204 - gcc-specs-pie && epatch "${FILESDIR}"/2.17/glibc-2.17-hardened-pie.patch
205 - epatch "${FILESDIR}"/2.20/glibc-2.20-hardened-inittls-nosysenter.patch
206 -
207 - # We don't enable these for non-hardened as the output is very terse --
208 - # it only states that a crash happened. The default upstream behavior
209 - # includes backtraces and symbols.
210 - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
211 - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-stack_chk_fail.c debug/stack_chk_fail.c || die
212 - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-chk_fail.c debug/chk_fail.c || die
213 -
214 - if use debug ; then
215 - # Allow SIGABRT to dump core on non-hardened systems, or when debug is requested.
216 - sed -i \
217 - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
218 - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
219 - debug/Makefile || die
220 - fi
221 -
222 - # Build various bits with ssp-all
223 - sed -i \
224 - -e 's:-fstack-protector$:-fstack-protector-all:' \
225 - */Makefile || die
226 - fi
227 -
228 - case $(gcc-fullversion) in
229 - 4.8.[0-3]|4.9.0)
230 - eerror "You need to switch to a newer compiler; gcc-4.8.[0-3] and gcc-4.9.0 miscompile"
231 - eerror "glibc. See https://bugs.gentoo.org/547420 for details."
232 - die "need to switch compilers #547420"
233 - ;;
234 - esac
235 -}
236
237 diff --git a/sys-libs/glibc/glibc-2.22-r1.ebuild b/sys-libs/glibc/glibc-2.22-r1.ebuild
238 deleted file mode 100644
239 index 6e41fa9..0000000
240 --- a/sys-libs/glibc/glibc-2.22-r1.ebuild
241 +++ /dev/null
242 @@ -1,197 +0,0 @@
243 -# Copyright 1999-2015 Gentoo Foundation
244 -# Distributed under the terms of the GNU General Public License v2
245 -# $Id$
246 -
247 -EAPI="4"
248 -
249 -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing
250 -
251 -DESCRIPTION="GNU libc6 (also called glibc2) C library"
252 -HOMEPAGE="https://www.gnu.org/software/libc/libc.html"
253 -
254 -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
255 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
256 -RESTRICT="strip" # strip ourself #46186
257 -EMULTILIB_PKG="true"
258 -
259 -# Configuration variables
260 -RELEASE_VER=""
261 -case ${PV} in
262 -9999*)
263 - EGIT_REPO_URIS="git://sourceware.org/git/glibc.git"
264 - EGIT_SOURCEDIRS="${S}"
265 - inherit git-2
266 - ;;
267 -*)
268 - RELEASE_VER=${PV}
269 - ;;
270 -esac
271 -GCC_BOOTSTRAP_VER="4.7.3-r1"
272 -PATCH_VER="9" # Gentoo patchset
273 -: ${NPTL_KERN_VER:="2.6.32"} # min kernel version nptl requires
274 -
275 -IUSE="debug gd hardened multilib nscd selinux systemtap profile suid vanilla crosscompile_opts_headers-only"
276 -
277 -# Here's how the cross-compile logic breaks down ...
278 -# CTARGET - machine that will target the binaries
279 -# CHOST - machine that will host the binaries
280 -# CBUILD - machine that will build the binaries
281 -# If CTARGET != CHOST, it means you want a libc for cross-compiling.
282 -# If CHOST != CBUILD, it means you want to cross-compile the libc.
283 -# CBUILD = CHOST = CTARGET - native build/install
284 -# CBUILD != (CHOST = CTARGET) - cross-compile a native build
285 -# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
286 -# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
287 -# For install paths:
288 -# CHOST = CTARGET - install into /
289 -# CHOST != CTARGET - install into /usr/CTARGET/
290 -
291 -export CBUILD=${CBUILD:-${CHOST}}
292 -export CTARGET=${CTARGET:-${CHOST}}
293 -if [[ ${CTARGET} == ${CHOST} ]] ; then
294 - if [[ ${CATEGORY} == cross-* ]] ; then
295 - export CTARGET=${CATEGORY#cross-}
296 - fi
297 -fi
298 -
299 -is_crosscompile() {
300 - [[ ${CHOST} != ${CTARGET} ]]
301 -}
302 -
303 -# Why SLOT 2.2 you ask yourself while sippin your tea ?
304 -# Everyone knows 2.2 > 0, duh.
305 -SLOT="2.2"
306 -
307 -# General: We need a new-enough binutils/gcc to match upstream baseline.
308 -# arch: we need to make sure our binutils/gcc supports TLS.
309 -DEPEND=">=app-misc/pax-utils-0.1.10
310 - !<sys-apps/sandbox-1.6
311 - !<sys-apps/portage-2.1.2
312 - selinux? ( sys-libs/libselinux )"
313 -RDEPEND="!sys-kernel/ps3-sources
314 - sys-apps/gentoo-functions
315 - selinux? ( sys-libs/libselinux )
316 - !sys-libs/nss-db"
317 -
318 -if [[ ${CATEGORY} == cross-* ]] ; then
319 - DEPEND+=" !crosscompile_opts_headers-only? (
320 - >=${CATEGORY}/binutils-2.24
321 - >=${CATEGORY}/gcc-4.6
322 - )"
323 - [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers"
324 -else
325 - DEPEND+="
326 - >=sys-devel/binutils-2.24
327 - >=sys-devel/gcc-4.6
328 - virtual/os-headers"
329 - RDEPEND+=" vanilla? ( !sys-libs/timezone-data )"
330 - PDEPEND+=" !vanilla? ( sys-libs/timezone-data )"
331 -fi
332 -
333 -upstream_uris() {
334 - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1
335 -}
336 -gentoo_uris() {
337 - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI"
338 - devspace=${devspace//HTTP/https://dev.gentoo.org/}
339 - echo mirror://gentoo/$1 ${devspace//URI/$1}
340 -}
341 -SRC_URI=$(
342 - [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz
343 - [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2
344 -)
345 -SRC_URI+=" ${GCC_BOOTSTRAP_VER:+multilib? ( $(gentoo_uris gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2) )}"
346 -
347 -# eblit-include [--skip] <function> [version]
348 -eblit-include() {
349 - local skipable=false
350 - [[ $1 == "--skip" ]] && skipable=true && shift
351 - [[ $1 == pkg_* ]] && skipable=true
352 -
353 - local e v func=$1 ver=$2
354 - [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
355 - for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
356 - e="${FILESDIR}/eblits/${func}${v}.eblit"
357 - if [[ -e ${e} ]] ; then
358 - source "${e}"
359 - return 0
360 - fi
361 - done
362 - ${skipable} && return 0
363 - die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
364 -}
365 -
366 -# eblit-run-maybe <function>
367 -# run the specified function if it is defined
368 -eblit-run-maybe() {
369 - [[ $(type -t "$@") == "function" ]] && "$@"
370 -}
371 -
372 -# eblit-run <function> [version]
373 -# aka: src_unpack() { eblit-run src_unpack ; }
374 -eblit-run() {
375 - eblit-include --skip common "${*:2}"
376 - eblit-include "$@"
377 - eblit-run-maybe eblit-$1-pre
378 - eblit-${PN}-$1
379 - eblit-run-maybe eblit-$1-post
380 -}
381 -
382 -src_unpack() { eblit-run src_unpack ; }
383 -src_prepare() { eblit-run src_prepare ; }
384 -src_configure() { eblit-run src_configure ; }
385 -src_compile() { eblit-run src_compile ; }
386 -src_test() { eblit-run src_test ; }
387 -src_install() { eblit-run src_install ; }
388 -
389 -# FILESDIR might not be available during binpkg install
390 -for x in pretend setup {pre,post}inst ; do
391 - e="${FILESDIR}/eblits/pkg_${x}.eblit"
392 - if [[ -e ${e} ]] ; then
393 - . "${e}"
394 - eval "pkg_${x}() { eblit-run pkg_${x} ; }"
395 - fi
396 -done
397 -
398 -eblit-src_unpack-pre() {
399 - [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib && unpack gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2
400 - # Bug 558636 we don't apply the pie works around for 2.22. It shoud have the support. #558636
401 - GLIBC_PATCH_EXCLUDE+=" 00_all_0002-workaround-crash-when-handling-signals-in-static-PIE.patch"
402 - GLIBC_PATCH_EXCLUDE+=" 00_all_0012-disable-PIE-when-checking-for-PIC-default.patch"
403 -}
404 -
405 -eblit-src_prepare-post() {
406 - cd "${S}"
407 -
408 - epatch "${FILESDIR}"/2.19/${PN}-2.19-ia64-gcc-4.8-reloc-hack.patch #503838
409 -
410 - if use hardened ; then
411 - # We don't enable these for non-hardened as the output is very terse --
412 - # it only states that a crash happened. The default upstream behavior
413 - # includes backtraces and symbols.
414 - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler"
415 - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-stack_chk_fail.c debug/stack_chk_fail.c || die
416 - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-chk_fail.c debug/chk_fail.c || die
417 -
418 - if use debug ; then
419 - # Allow SIGABRT to dump core on non-hardened systems, or when debug is requested.
420 - sed -i \
421 - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
422 - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \
423 - debug/Makefile || die
424 - fi
425 -
426 - # Build various bits with ssp-all
427 - sed -i \
428 - -e 's:-fstack-protector$:-fstack-protector-all:' \
429 - */Makefile || die
430 - fi
431 -
432 - case $(gcc-fullversion) in
433 - 4.8.[0-3]|4.9.0)
434 - eerror "You need to switch to a newer compiler; gcc-4.8.[0-3] and gcc-4.9.0 miscompile"
435 - eerror "glibc. See https://bugs.gentoo.org/547420 for details."
436 - die "need to switch compilers #547420"
437 - ;;
438 - esac
439 -}