blob: 1da6ca1a0e15ded625bc9abb227b74d6f73b38ac (
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="4"
inherit eutils flag-o-matic multilib
BINUTILS_PV="2.20.1"
NEWLIB_PV="1.20.0"
GCC_PV="4.4.3"
NACL_REVISION="${PV##*_p}"
DESCRIPTION="Native Client newlib-based toolchain (only for compiling IRT)"
HOMEPAGE="https://developer.chrome.com/native-client/sdk/download"
SRC_URI="mirror://gnu/binutils/binutils-${BINUTILS_PV}.tar.bz2
ftp://sources.redhat.com/pub/newlib/newlib-${NEWLIB_PV}.tar.gz
mirror://gnu/gcc/gcc-${GCC_PV}/gcc-${GCC_PV}.tar.bz2
http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r${NACL_REVISION}/nacltoolchain-buildscripts-r${NACL_REVISION}.tar.gz
http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r${NACL_REVISION}/naclbinutils-${BINUTILS_PV}-r${NACL_REVISION}.patch.bz2
http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r${NACL_REVISION}/naclnewlib-${NEWLIB_PV}-r${NACL_REVISION}.patch.bz2
http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r${NACL_REVISION}/naclgcc-${GCC_PV}-r${NACL_REVISION}.patch.bz2
"
LICENSE="BSD" # NaCl
LICENSE+=" || ( GPL-3 LGPL-3 )" # binutils
LICENSE+=" NEWLIB LIBGLOSS GPL-2" # newlib
LICENSE+=" GPL-3 LGPL-3 || ( GPL-3 libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.2" # gcc
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
# Stripping with a non-NaCl strip breaks the toolchain, bug #386931.
# Tests are broken, bug #391761.
RESTRICT="strip test"
# Executable section checks do not make sense for newlib, bug #390383.
QA_EXECSTACK="usr/lib*/nacl-toolchain-newlib/*/lib*/*"
RDEPEND="
>=dev-libs/gmp-5.0.2
>=dev-libs/mpfr-3.0.1
>=sys-libs/glibc-2.8
>=sys-libs/zlib-1.1.4
"
DEPEND="${RDEPEND}
app-arch/zip
app-arch/unzip
dev-libs/mpc
dev-libs/cloog-ppl
dev-libs/ppl
>=media-libs/libart_lgpl-2.1
>=sys-apps/texinfo-4.8
>=sys-devel/binutils-2.15.94
>=sys-devel/bison-1.875
>=sys-devel/flex-2.5.4
sys-devel/gnuconfig
sys-devel/m4
>=sys-libs/ncurses-5.2-r2
>=sys-apps/sed-4
sys-devel/gettext
virtual/libiconv
virtual/yacc
"
S="${WORKDIR}"
pkg_setup() {
# Unset variables known to break the build. This is a black-list
# rather than white-list because it's not obvious how to come up
# with a comprehensive white-list.
# For more info see bug #413995.
unset -v LANGUAGES || die
}
src_prepare() {
mkdir SRC || die
mv binutils-${BINUTILS_PV} SRC/binutils || die
mv newlib-${NEWLIB_PV} SRC/newlib || die
mv gcc-${GCC_PV} SRC/gcc || die
cd SRC || die
EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" epatch "${S}"
# Parallel build failure, bug #437048.
epatch "${FILESDIR}/gcc-parallel-build-r0.patch"
cd "${S}/SRC/binutils" || die
epatch "${FILESDIR}/binutils-texinfo-r0.patch"
cd "${S}/SRC/gcc" || die
epatch "${FILESDIR}/gcc-texinfo-r0.patch"
}
src_compile() {
strip-flags # See bug #390589.
emake PREFIX="${PWD}/${PN}" CANNED_REVISION="yes" build-with-newlib
}
src_install() {
local TOOLCHAIN_HOME="/usr/$(get_libdir)"
dodir "${TOOLCHAIN_HOME}"
mv "${WORKDIR}/${PN}" "${ED}/${TOOLCHAIN_HOME}" || die
}
|