blob: dda51f24864439a1c2f5681c6941802e06f69158 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EGIT_REPO_URI="git://github.com/D-Programming-GDC/GDC.git"
EGIT_BRANCH="gdc-4.8"
EGIT_COMMIT="6296cfbe97"
EGIT_SOURCEDIR="${WORKDIR}/dev"
EGIT_NOUNPACK=1
inherit git-2
IUSE="d"
FILESDIR=${PORTDIR}/sys-devel/gcc/files
# Original GCC code starts here
PATCH_VER="1.2"
UCLIBC_VER="1.0"
# Hardened gcc 4 stuff
PIE_VER="0.5.7"
SPECS_VER="0.2.0"
SPECS_GCC_VER="4.4.3"
# arch/libc configurations known to be stable with {PIE,SSP}-by-default
PIE_GLIBC_STABLE="x86 amd64 mips ppc ppc64 arm ia64"
PIE_UCLIBC_STABLE="x86 arm amd64 mips ppc ppc64"
SSP_STABLE="amd64 x86 mips ppc ppc64 arm"
# uclibc need tls and nptl support for SSP support
# uclibc need to be >= 0.9.33
SSP_UCLIBC_STABLE="x86 amd64 mips ppc ppc64 arm"
#end Hardened stuff
inherit toolchain
DESCRIPTION="The GNU Compiler Collection"
LICENSE="GPL-3+ LGPL-3+ || ( GPL-3+ libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.3+"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~x86 ~amd64-fbsd ~x86-fbsd"
RDEPEND=""
DEPEND="${RDEPEND}
elibc_glibc? ( >=sys-libs/glibc-2.8 )
>=${CATEGORY}/binutils-2.20"
if [[ ${CATEGORY} != cross-* ]] ; then
PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )"
fi
src_unpack() {
if has_version '<sys-libs/glibc-2.12' ; then
ewarn "Your host glibc is too old; disabling automatic fortify."
ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
fi
toolchain_src_unpack
use vanilla && return 0
#Use -r1 for newer piepatchet that use DRIVER_SELF_SPECS for the hardened specs.
[[ ${CHOST} == ${CTARGET} ]] && epatch "${GCC_FILESDIR}"/gcc-spec-env-r1.patch
if use d ; then
# Get GDC sources into the tree.
git-2_src_unpack
cd ../dev || die "Changing into Git checkout directory failed."
./setup-gcc.sh ../gcc-${GCC_PV} || die "Could not setup GDC."
fi
}
pkg_setup() {
toolchain_pkg_setup
if use lto ; then
ewarn
ewarn "LTO support is still experimental and unstable. Any bug reports"
ewarn "about LTO that do not include an upstream patch will be closed as"
ewarn "invalid."
ewarn
fi
}
pkg_postinst() {
toolchain_pkg_postinst
elog
elog "Packages failing to build with GCC 4.8 are tracked at"
elog "https://bugs.gentoo.org/461954"
elog
}
|