Gentoo Archives: gentoo-commits

From: Benda XU <heroxbd@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] dev/heroxbd:master commit in: eclass/, sys-libs/glibc/, profiles/bootstrap/, profiles/features/rap/, ...
Date: Mon, 30 Sep 2013 14:03:23
Message-Id: 1378305808.1f9f16ab1b837c18b373257887657bc437ad3c77.heroxbd@gentoo
1 commit: 1f9f16ab1b837c18b373257887657bc437ad3c77
2 Author: XU Benda <heroxbd <AT> gmail <DOT> com>
3 AuthorDate: Wed Sep 4 14:43:28 2013 +0000
4 Commit: Benda XU <heroxbd <AT> gentoo <DOT> org>
5 CommitDate: Wed Sep 4 14:43:28 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=dev/heroxbd.git;a=commit;h=1f9f16ab
7
8 use rap flag in toolchain.eclass
9
10 fix glibc symlink
11
12 add bootstrap profiles
13
14 ---
15 eclass/toolchain.eclass | 22 ++-
16 profiles/bootstrap/gcc/make.defaults.in | 3 +
17 profiles/bootstrap/gcc/package.use | 12 ++
18 profiles/bootstrap/gcc/parent | 1 +
19 profiles/bootstrap/gcc/profile.bashrc | 2 +
20 profiles/bootstrap/gcc/use.force | 1 +
21 profiles/bootstrap/make.defaults.in | 21 +++
22 profiles/bootstrap/parent | 1 +
23 profiles/bootstrap/profile.bashrc.in | 11 ++
24 profiles/features/rap/profile.bashrc | 2 +-
25 sys-devel/gcc/Manifest | 2 +-
26 sys-devel/gcc/gcc-4.7.2-r1.ebuild | 213 --------------------------
27 sys-devel/gcc/gcc-4.7.3.ebuild | 12 +-
28 sys-libs/glibc/Manifest | 2 +-
29 sys-libs/glibc/files/eblits/src_install.eblit | 2 +-
30 15 files changed, 80 insertions(+), 227 deletions(-)
31
32 diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
33 index 76d92e6..77fa3e4 100644
34 --- a/eclass/toolchain.eclass
35 +++ b/eclass/toolchain.eclass
36 @@ -46,7 +46,7 @@ is_crosscompile() {
37
38 # General purpose version check. Without a second arg matches up to minor version (x.x.x)
39 # (ie. 4.6.0_pre9999 matches 4 or 4.6 or 4.6.0 but not 4.6.1)
40 -tc_version_is_at_least() {
41 +tc_version_is_at_least() {
42 version_is_at_least "$1" "${2:-${GCC_RELEASE_VER}}"
43 }
44
45 @@ -118,7 +118,7 @@ if [[ ${PN} != "kgcc64" && ${PN} != gcc-* ]] ; then
46 tc_version_is_at_least 4.3 && IUSE+=" fixed-point"
47 tc_version_is_at_least 4.6 && IUSE+=" graphite"
48 tc_version_is_at_least 4.6 && IUSE+=" lto"
49 - tc_version_is_at_least 4.7 && IUSE+=" go"
50 + tc_version_is_at_least 4.7 && IUSE+=" go rap"
51 fi
52
53 # Support upgrade paths here or people get pissed
54 @@ -467,6 +467,18 @@ make_gcc_hard() {
55 BRANDING_GCC_PKGVERSION=${BRANDING_GCC_PKGVERSION/Gentoo/Gentoo Hardened}
56 }
57
58 +prefix_gcc_dynamic_loader() {
59 + local dlf
60 +
61 + case $(tc-arch) in
62 + amd64) dlf=i386/linux64.h ;;
63 + arm) dlf=arm/linux-eabi.h ;;
64 + x86) dlf=i386/linux.h ;;
65 + esac
66 +
67 + eprefixify gcc/config/${dlf}
68 +}
69 +
70 create_gcc_env_entry() {
71 dodir /etc/env.d/gcc
72 local gcc_envd_base="/etc/env.d/gcc/${CTARGET}-${GCC_CONFIG_VER}"
73 @@ -1211,6 +1223,12 @@ gcc_do_configure() {
74 # which is unrelated to TOOLCHAIN_PREFIX, a.k.a. PREFIX
75 confgcc+=( --with-local-prefix="${TPREFIX}"/usr )
76 fi
77 +
78 + if use rap ; then
79 + # use sysroot of toolchain to get currect include and library at
80 + # compile time
81 + confgcc+=( --with-sysroot="${EPREFIX}" )
82 + fi
83 fi
84 # __cxa_atexit is "essential for fully standards-compliant handling of
85 # destructors", but apparently requires glibc.
86
87 diff --git a/profiles/bootstrap/gcc/make.defaults.in b/profiles/bootstrap/gcc/make.defaults.in
88 new file mode 100644
89 index 0000000..c876c60
90 --- /dev/null
91 +++ b/profiles/bootstrap/gcc/make.defaults.in
92 @@ -0,0 +1,3 @@
93 +# libraries built in stage1 needs explicitly specified path
94 +LDFLAGS="-L@GENTOO_PORTAGE_EPREFIX@/tmp/usr/lib -Wl,-rpath=@GENTOO_PORTAGE_EPREFIX@/tmp/usr/lib"
95 +CPPFLAGS="-I@GENTOO_PORTAGE_EPREFIX@/tmp/usr/include"
96
97 diff --git a/profiles/bootstrap/gcc/package.use b/profiles/bootstrap/gcc/package.use
98 new file mode 100644
99 index 0000000..2c4aae9
100 --- /dev/null
101 +++ b/profiles/bootstrap/gcc/package.use
102 @@ -0,0 +1,12 @@
103 +# first pass of gcc uses host libc
104 +sys-devel/gcc -rap
105 +
106 +# Most binary Linux distributions seem to fancy toolchains that do not
107 +# do c++ support (need to install a separate package). Since we don't
108 +# check for g++, just make sure binutils won't try to build gold
109 +# (needs c++), it will get there once we built our own GCC with c++
110 +# support. For that reason we cannot globally mask cxx, because then
111 +# GCC will be built without c++ support too.
112 +
113 +sys-devel/binutils -cxx
114 +dev-libs/gmp -cxx
115
116 diff --git a/profiles/bootstrap/gcc/parent b/profiles/bootstrap/gcc/parent
117 new file mode 100644
118 index 0000000..f3229c5
119 --- /dev/null
120 +++ b/profiles/bootstrap/gcc/parent
121 @@ -0,0 +1 @@
122 +..
123
124 diff --git a/profiles/bootstrap/gcc/profile.bashrc b/profiles/bootstrap/gcc/profile.bashrc
125 new file mode 100644
126 index 0000000..1d59b66
127 --- /dev/null
128 +++ b/profiles/bootstrap/gcc/profile.bashrc
129 @@ -0,0 +1,2 @@
130 +# disable gcc bootstrap which cleans out LDFLAGS essential for this phase.
131 +[[ ${PN} == "gcc" ]] && { EXTRA_ECONF='--disable-bootstrap'; GCC_MAKE_TARGET='all'; }
132
133 diff --git a/profiles/bootstrap/gcc/use.force b/profiles/bootstrap/gcc/use.force
134 new file mode 100644
135 index 0000000..1609d29
136 --- /dev/null
137 +++ b/profiles/bootstrap/gcc/use.force
138 @@ -0,0 +1 @@
139 +-rap
140
141 diff --git a/profiles/bootstrap/make.defaults.in b/profiles/bootstrap/make.defaults.in
142 new file mode 100644
143 index 0000000..06da263
144 --- /dev/null
145 +++ b/profiles/bootstrap/make.defaults.in
146 @@ -0,0 +1,21 @@
147 +# The default profiles (and IUSE defaults) introduce circular deps. By
148 +# shoving this USE line into make.defaults, we can ensure that the
149 +# end-user always avoids circular deps while bootstrapping and it gets
150 +# wiped after a --sync. Also simplifies bootstrapping instructions.
151 +
152 +USE="-berkdb -fortran -gdbm -git -nls -pcre -ssl -python -readline bootstrap"
153 +
154 +# and we don't need to spam the user about news until after a --sync
155 +# because the tools aren't available to read the news item yet anyway.
156 +
157 +FEATURES="${FEATURES} -news"
158 +
159 +# Disable the STALE warning because the snapshot frequently gets stale.
160 +# DON'T REMOVE this one, stage3's tree check relies on this one
161 +
162 +PORTAGE_SYNC_STALE=0
163 +
164 +# Set correct PYTHONPATH for Portage, since our Python lives in
165 +# $EPREFIX/tmp, bug #407573
166 +
167 +PYTHONPATH=@GENTOO_PORTAGE_EPREFIX@/usr/lib/portage/pym
168
169 diff --git a/profiles/bootstrap/parent b/profiles/bootstrap/parent
170 new file mode 100644
171 index 0000000..291864c
172 --- /dev/null
173 +++ b/profiles/bootstrap/parent
174 @@ -0,0 +1 @@
175 +../default/linux/amd64/13.0/rap
176
177 diff --git a/profiles/bootstrap/profile.bashrc.in b/profiles/bootstrap/profile.bashrc.in
178 new file mode 100644
179 index 0000000..13f9626
180 --- /dev/null
181 +++ b/profiles/bootstrap/profile.bashrc.in
182 @@ -0,0 +1,11 @@
183 +# Hack for bash because curses is not always available (linux).
184 +[[ ${PN} == "bash" ]] && EXTRA_ECONF="--without-curses"
185 +
186 +# We don't know why gcc pass 1 have /usr/include as higher priority than
187 +# ${EPREFIX}/usr/include, which is not the case in Prefix. Keep this hack
188 +# here until we find out why.
189 +
190 +if [[ ${PN} == gcc ]]; then
191 + CPPFLAGS="-I@GENTOO_PORTAGE_EPREFIX@/tmp/usr/include"
192 + LDFLAGS="-Wl,--dynamic-linker=$(echo '@GENTOO_PORTAGE_EPREFIX@'/lib64/ld-linux-*.so.*)"
193 +fi
194
195 diff --git a/profiles/features/rap/profile.bashrc b/profiles/features/rap/profile.bashrc
196 index 40cc40c..5f7a4a4 100644
197 --- a/profiles/features/rap/profile.bashrc
198 +++ b/profiles/features/rap/profile.bashrc
199 @@ -1,7 +1,7 @@
200 # use sysroot of toolchain to get include and library at compile time work
201 # Benda Xu <heroxbd@g.o> (17 Jun, 2013)
202
203 -if [[ ${CATEGORY} == sys-devel ]] && [[ ${PN} == gcc || ${PN} == binutils || ${PN} == libtool ]] \
204 +if [[ ${CATEGORY} == sys-devel ]] && [[ ${PN} == binutils || ${PN} == libtool ]] \
205 && [[ ${EBUILD_PHASE} == unpack ]]; then
206 elog "append --with-sysroot=${EPREFIX} to configure for Prefix libc"
207 EXTRA_ECONF+="--with-sysroot=${EPREFIX}"
208
209 diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
210 index 8377b0c..efe32b5 100644
211 --- a/sys-devel/gcc/Manifest
212 +++ b/sys-devel/gcc/Manifest
213 @@ -159,7 +159,7 @@ EBUILD gcc-4.5.4.ebuild 7041 SHA256 4d49f90f887d6a077289e17b654d1f7a955923884072
214 EBUILD gcc-4.6.3.ebuild 7352 SHA256 ca575e64bb85597e876d4bfe8895fbc86eacbe96005917b234884b59c86157a1 SHA512 7f0bc77ed4eb4759f245af033dd76514bdb781a623ed71703e2e81d00d05a2ba6d64d07270d363b041a942986b9de124f606b6928391f2921eab3c1c64fff7ce WHIRLPOOL 7e469e72721751660e342df41eadbe6af9bf1046a8b24341c1171e80b1ac277f1394765b10e154e66e5e8b88d0633d454a93af56303bd7f9a54ad19e017127e9
215 EBUILD gcc-4.7.1.ebuild 7319 SHA256 00fa53c1dbde1f7cf3d6bbe2167b6efa7894bfb24c3e6f61d78181186a8ad6e6 SHA512 59e77f97c5439765a16b6d8c653bbde3688e2332a28b1c2ffa2be8745f4828f552448e00cb3293c0b004d6e474acb1ec328a89141f40d8e067e7538bd5613444 WHIRLPOOL 79783dffc3f9e1061b7e36235246ae5e38a81d1466d9dade0713405bd3b26f1ffa3ee48d92988e30b94650b1cac23e70683468cf2db53df85d6a61c88b812220
216 EBUILD gcc-4.7.2-r1.ebuild 7565 SHA256 737fd46d300188d1d41391f7e99b74ffbd624bc48066f50178f8cbdd7962791f SHA512 6c6f7ae96ac1512476daa330f5bcacf769e9cfab3484fb1b1630294e4484789f4e577767309163d99daba5eb06a5e8717d935460575e92ffd93a253e0d9684cf WHIRLPOOL 4e1137154147d22d538a3c79e0a3e9f908ec451f4202d8a48452cf1f0098288dde38c036866188caf8e9c79dda8dbc73aee354ac9711e60f71fac87c5658808a
217 -EBUILD gcc-4.7.3.ebuild 2115 SHA256 538988e7b841c8da74c33032ca55eb30699aed1873450710753374b4d0def81b SHA512 0520c1f2149f8e0b70f63ac9679a1f4c4d668b36850bf4281019e375e290e45d7d7c2e0273cb4beac1e6e81e62e6900377ce3c708aa3793f3a00b21f5fb225b7 WHIRLPOOL 8e1f83dcb7311d2168aefc561c2a9a190518da63ad57fe8d2dc8c7927463278187dcd1a6d8cbfeab68c8044a927dac61d364d048f5c223817f1d25db86a81120
218 +EBUILD gcc-4.7.3.ebuild 2006 SHA256 b1578b13fdbbd1ad3a492e5e0647c963b539b241d97f692c82e5702a28c93832 SHA512 8ecd14ec0e22e2f7f491848c69509d5bf22042dc762e093006d90d87c72981fd0f2fad4a2d728136a0712b0c2d00cadf9264aa8ac7992b721182e682d04d8fe6 WHIRLPOOL 02edd5aa9da56a12ee8097f9b881da257d2ec35cb8c358ecdbd8ed467cdbe228358a97f50de7366d42cba5133d6f3592ee86592933344c05ade29be7aefc9fe5
219 EBUILD gcc-4.9.0_pre9999.ebuild 1890 SHA256 598ce00e812bf3fb6bcc0bd28bbcd26be990cc732712fbccd92d9f3e103e0b69 SHA512 9f4b0a886b81b9df92812d42c11a17ef87f39fa68fa71bc44702e53d6b482bb976cf613f115dd9ad2c67bfe6dc48ed8941c5daca677ceffc72d01062ffff41a5 WHIRLPOOL 6674d689945dc7b632449e997c6ddcbd590cffb0ea5b155c7405277ea84ee00ff32e6eca8a24930864b1908ea1cff0593459b4fb615d40bbb2f9597d9f055ca0
220 MISC ChangeLog 165527 SHA256 afc6b5620b6f54646b5de780489b3bedc3be4fecef955555840da9bd77e7db0f SHA512 7dbbb73644ba270c5534fc9e86a3e67ec220f792558b13522d1ad6c0ae0121dd1729d4bcdfedfa568e9f4abc98db21d02811913348de5e141423c08c9f33552a WHIRLPOOL a4553cf71e29cf99aecbf132d7764ad2eeae079fd2ccd8133dc2bdd279e400e58ad8fedf6880fb0688ed3b3c2cdffef275f9df4c8ee62bf772d0a8e70d3a0917
221 MISC metadata.xml 2017 SHA256 b8397e7ce9649b9086d020ee865f1ccd616b338cdae5be3d57494fd15748d132 SHA512 231a34104c4c0fc8f2a2733572236d7638bc9e7241a6d60b90601f24204c2a7ae5d61d351c75179dce05b4e1b7e367b9ef4f8c6d19c58d3695f5e6cb15ab519a WHIRLPOOL 01599d282637b293265f57c05a91447434d8bb33be54d6e89b8739e0f549b2045e4bc9fb6df8c7a6d0e7d6899b818b6f18454906a73edd529fc9ee57f212cce7
222
223 diff --git a/sys-devel/gcc/gcc-4.7.2-r1.ebuild b/sys-devel/gcc/gcc-4.7.2-r1.ebuild
224 deleted file mode 100644
225 index d21b2e9..0000000
226 --- a/sys-devel/gcc/gcc-4.7.2-r1.ebuild
227 +++ /dev/null
228 @@ -1,213 +0,0 @@
229 -# Copyright 1999-2013 Gentoo Foundation
230 -# Distributed under the terms of the GNU General Public License v2
231 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-4.7.2-r1.ebuild,v 1.2 2013/03/02 01:15:12 dirtyepic Exp $
232 -
233 -PATCH_VER="1.5"
234 -UCLIBC_VER="1.0"
235 -
236 -# Hardened gcc 4 stuff
237 -PIE_VER="0.5.5"
238 -SPECS_VER="0.2.0"
239 -SPECS_GCC_VER="4.4.3"
240 -# arch/libc configurations known to be stable with {PIE,SSP}-by-default
241 -PIE_GLIBC_STABLE="x86 amd64 ppc ppc64 arm ia64"
242 -PIE_UCLIBC_STABLE="x86 arm amd64 ppc ppc64"
243 -SSP_STABLE="amd64 x86 ppc ppc64 arm
244 -# uclibc need tls and nptl support for SSP support"
245 -# uclibc need to be >= 0.9.33
246 -SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
247 -#end Hardened stuff
248 -
249 -inherit toolchain flag-o-matic prefix
250 -
251 -DESCRIPTION="The GNU Compiler Collection."
252 -
253 -LICENSE="GPL-3 LGPL-3 || ( GPL-3 libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.2"
254 -KEYWORDS="~ppc-aix ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
255 -
256 -RDEPEND=""
257 -DEPEND="${RDEPEND}
258 - !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.8 ) )
259 - kernel_Darwin? ( ${CATEGORY}/binutils-apple )
260 - kernel_AIX? ( ${CATEGORY}/native-cctools )
261 - kernel_linux? ( >=${CATEGORY}/binutils-2.18 )"
262 -
263 -if [[ ${CATEGORY} != cross-* ]] ; then
264 - PDEPEND="${PDEPEND} !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.8 ) )"
265 -fi
266 -
267 -src_unpack() {
268 - if has_version '<sys-libs/glibc-2.12' ; then
269 - ewarn "Your host glibc is too old; disabling automatic fortify."
270 - ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
271 - EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
272 - fi
273 - # Fedora/RedHat ships glibc-2.15+ with some nasty warnings that cause
274 - # configure checks for most system headers to fail, resulting in bugs
275 - # compiling e.g. gcc itself, bug #433333
276 - if [[ -e /usr/include/features.h ]] ; then
277 - grep -qF "_FORTIFY_SOURCE requires compiling with optimization" \
278 - /usr/include/features.h && \
279 - EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
280 - fi
281 -
282 - # drop the x32 stuff once 4.7 goes stable
283 - if [[ ${CTARGET} != x86_64* ]] || ! has x32 $(get_all_abis TARGET) ; then
284 - EPATCH_EXCLUDE+=" 90_all_gcc-4.7-x32.patch"
285 - fi
286 -
287 - toolchain_src_unpack
288 -
289 - use vanilla && return 0
290 -
291 - epatch "${FILESDIR}"/gcc-4.7.2-rap-${ARCH}.patch
292 - case ${ARCH} in
293 - amd64)
294 - eprefixify gcc/config/i386/linux64.h
295 - ;;
296 - arm)
297 - eprefixify gcc/config/arm/linux-eabi.h
298 - ;;
299 - esac
300 -
301 - # make sure 64-bits native targets don't screw up the linker paths
302 - epatch "${FILESDIR}"/4.7.1/solaris-searchpath.patch
303 - epatch "${FILESDIR}"/no-libs-for-startfile.patch
304 - if use prefix; then
305 - epatch "${FILESDIR}"/4.5.2/prefix-search-dirs.patch
306 - # try /usr/lib32 in 32bit profile on x86_64-linux (needs
307 - # --enable-multilib), but this does make sense in prefix only
308 -# fails: likely still necessary
309 -# epatch "${FILESDIR}"/${PN}-4.4.1-linux-x86-on-amd64.patch
310 - fi
311 -
312 - # make it have correct install_names on Darwin
313 - epatch "${FILESDIR}"/4.3.3/darwin-libgcc_s-installname.patch
314 -
315 - if [[ ${CHOST} == *-mint* ]] ; then
316 - epatch "${FILESDIR}"/4.3.2/${PN}-4.3.2-mint3.patch
317 - epatch "${FILESDIR}"/4.4.1/${PN}-4.4.1-mint1.patch
318 - epatch "${FILESDIR}"/4.4.1/${PN}-4.4.1-mint3.patch
319 - epatch "${FILESDIR}"/4.5.1/${PN}-4.5.1-mint1.patch
320 - epatch "${FILESDIR}"/4.5.2/${PN}-4.5.2-mint1.patch
321 - epatch "${FILESDIR}"/4.5.2/m68k-coldfire.patch
322 - fi
323 -
324 - # Always behave as if -pthread were passed on AIX and HPUX (#266548)
325 -# fails, likely still necessary though
326 -# epatch "${FILESDIR}"/4.5.1/aix-force-pthread.patch
327 -# epatch "${FILESDIR}"/4.5.1/ia64-hpux-always-pthread.patch
328 -
329 - [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
330 -}
331 -
332 -src_compile() {
333 - case ${CTARGET}:" ${USE} " in
334 - powerpc*-darwin*)
335 - # bug #381179
336 - filter-flags "-mcpu=*" "-mtune=*"
337 - ;;
338 - *-mint*)
339 - EXTRA_ECONF="${EXTRA_ECONF} --enable-multilib"
340 - ;;
341 - *-solaris*)
342 - # todo: some magic for native vs. GNU linking?
343 - EXTRA_ECONF="${EXTRA_ECONF} --with-gnu-ld --with-gnu-as"
344 - ;;
345 - *-aix*)
346 - # AIX doesn't use GNU binutils, because it doesn't produce usable
347 - # code
348 - EXTRA_ECONF="${EXTRA_ECONF} --without-gnu-ld --without-gnu-as"
349 - append-ldflags -Wl,-bbigtoc,-bmaxdata:0x10000000 # bug#194635
350 - ;;
351 - *-interix*)
352 - # disable usage of poll() on interix, since poll() only
353 - # works on the /proc filesystem (.......)
354 - export glibcxx_cv_POLL=no
355 -
356 - # if using the old system as, gcc's configure script fails
357 - # to detect that as cannot handle .lcomm with alignment.
358 - # on interix, it is rather easy to detect the as, since there
359 - # is only _one_ build of it with a fixed date in the version
360 - # header...
361 - if as --version | grep 20021111 > /dev/null 2>&1; then
362 - einfo "preventing gcc from detecting .lcomm alignment option in interix system as."
363 - export gcc_cv_as_lcomm_with_alignment=no
364 - fi
365 - ;;
366 - i[34567]86-*-linux*:*" prefix "*)
367 - # to allow the linux-x86-on-amd64.patch become useful, we need
368 - # to enable multilib, even if there is just one multilib option.
369 - EXTRA_ECONF="${EXTRA_ECONF} --enable-multilib"
370 - if [[ ${CBUILD:-${CHOST}} == "${CHOST}" ]]; then
371 - # we might be on x86_64-linux, but don't do cross-compile, so
372 - # tell the host-compiler to really create 32bits (for stage1)
373 - # (real x86-linux-gcc also accept -m32).
374 - tc-export CC CXX
375 - CC="${CC} -m32"
376 - CXX="${CC} -m32"
377 - fi
378 - ;;
379 - esac
380 -
381 - # Since GCC 4.1.2 some non-posix (?) /bin/sh compatible code is used, at
382 - # least on Solaris, and AIX /bin/sh is ways too slow,
383 - # so force it to use $BASH (that portage uses) - it can't be EPREFIX
384 - # in case that doesn't exist yet
385 - export CONFIG_SHELL="${CONFIG_SHELL:-${BASH}}"
386 - gcc_src_compile
387 -}
388 -
389 -src_install() {
390 - toolchain_src_install
391 -
392 - if [[ ${CTARGET} == *-interix* ]] && ! is_crosscompile; then
393 - # interix delivers libdl and dlfcn.h with gcc-3.3.
394 - # Since those parts are perfectly usable by this gcc (and
395 - # required for example by perl), we simply can reuse them.
396 - # As libdl is in /usr/lib, we only need to copy dlfcn.h.
397 - # When cross compiling for interix once, ensure that sysroot
398 - # contains dlfcn.h.
399 - cp /opt/gcc.3.3/include/dlfcn.h "${ED}${INCLUDEPATH}" \
400 - || die "Cannot gain /opt/gcc.3.3/include/dlfcn.h"
401 - fi
402 -
403 - if [[ ${CTARGET} == *-interix3* ]]; then
404 - # interix 3.5 has no stdint.h and no inttypes.h. This breaks
405 - # so many packages, that i just install interix 5.2's stdint.h
406 - # which should be ok.
407 - cp "${FILESDIR}"/interix-3.5-stdint.h "${ED}${INCLUDEPATH}/stdint.h" \
408 - || die "Cannot install stdint.h for interix3"
409 - fi
410 -
411 - # create a small profile.d script, unsetting some of the bad
412 - # environment variables that the sustem could set from the outside.
413 - # (GCC_SPECS, GCC_EXEC_PREFIX, CPATH, LIBRARY_PATH, LD_LIBRARY_PATH,
414 - # C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, LIBPATH, SHLIB_PATH, LIB, INCLUDE,
415 - # LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64).
416 - # Maybe there is a better location for doing this ...? Feel free to move
417 - # it there if you want to.
418 -
419 - cat > "${T}"/00-gcc-paths.sh <<- _EOF
420 - #!/bin/env bash
421 - # GCC specific variables
422 - unset GCC_SPECS GCC_EXEC_PREFIX
423 - # include path variables
424 - unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH INCLUDE
425 - # library path variables
426 - unset LIBRARY_PATH LD_LIBRARY_PATH LIBPATH SHLIB_PATH LIB LD_LIBRARY_PATH_32 LD_LIBRARY_PATH_64
427 - _EOF
428 -
429 - insinto /etc/profile.d
430 - doins "${T}"/00-gcc-paths.sh
431 -
432 -}
433 -
434 -pkg_setup() {
435 - toolchain_pkg_setup
436 -
437 - ewarn
438 - ewarn "LTO support is still experimental and unstable."
439 - ewarn "Any bugs resulting from the use of LTO will not be fixed."
440 - ewarn
441 -}
442
443 diff --git a/sys-devel/gcc/gcc-4.7.3.ebuild b/sys-devel/gcc/gcc-4.7.3.ebuild
444 index 84de6dd..de584db 100644
445 --- a/sys-devel/gcc/gcc-4.7.3.ebuild
446 +++ b/sys-devel/gcc/gcc-4.7.3.ebuild
447 @@ -49,14 +49,10 @@ src_unpack() {
448
449 toolchain_src_unpack
450
451 - epatch "${FILESDIR}"/gcc-4.7-rap.patch
452 - local dlf
453 - case $(tc-arch) in
454 - amd64) dlf=i386/linux64.h ;;
455 - arm) dlf=arm/linux-eabi.h ;;
456 - x86) dlf=i386/linux.h ;;
457 - esac
458 - eprefixify gcc/config/${dlf}
459 + if use rap; then
460 + epatch "${FILESDIR}"/gcc-4.7-rap.patch
461 + prefix_gcc_dynamic_loader
462 + fi
463
464 use vanilla && return 0
465
466
467 diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
468 index bb053f2..7f86730 100644
469 --- a/sys-libs/glibc/Manifest
470 +++ b/sys-libs/glibc/Manifest
471 @@ -23,7 +23,7 @@ AUX eblits/pkg_postinst.eblit 1081 SHA256 21c349d6999841b277dd00ed6f2bf4b33d1472
472 AUX eblits/pkg_preinst.eblit 2287 SHA256 5cc4ff72c7637e5f7a1534b805250ce69e4c5bdab211b39831068cbd8e7af678 SHA512 4ed0d857568f567f4d707d6d90b596371b6a75bf7ef78bc5d468e7e3e65458d4b8e3d8df3b63bd3616f1c239babc6594880f69856d6b83923d65d6281de5a5d5 WHIRLPOOL 189388d6f9162efe10492d74b691be4a977f5621453bf56f1ac99d1b5106ef15519ee495a71b8e0ce5b2f9a186de42b93468156eb8ac645ec357731262a6d097
473 AUX eblits/pkg_setup.eblit 3897 SHA256 eb384c601e2a48edd1f2e3ad591847d65c88d9560ce24efa69502ad75fc7350c SHA512 7af588bfdf9ac0c7042ca96578b7c1c9f67abfbf7d653d9ec1a811addafc9a800cc89d250f44a0570f9c02e8294a28b330eb278c020de7eed4c181e44ecbe57e WHIRLPOOL 271229a58dd9498bcaab420f4d5ab2648122c81b39e6611551cbd3f693fddbc9ae44787c34b7b68644d8cab270147c716a362fbe414602d8938d0166f2b5a99b
474 AUX eblits/src_compile.eblit 7177 SHA256 5ad914a83c00537e68dbad7b354d865346e6abb8a736359b30aa5e1203eba140 SHA512 d68bac6b896219f13e284065c6f2e5f8ad080981c98ac9794cd2612eaea74744b7c3914dc4b5a1c1d3416254d6caffa05227a33adbb82360dab07c775558d9fa WHIRLPOOL c61d9d68386ef54fe2c89939afc225b2c6d8fe72a0bc3d5e5d90b38a601cd4fcbcf1fd399cbece20d6933f4ccbe28b224bafaddef0098aa26be16d5d6c0d9196
475 -AUX eblits/src_install.eblit 8240 SHA256 da21623cf7e439b359aaf1c838b5ccddb7938e6c896abe2d2e65a1d0135e1354 SHA512 b2e0cc313e3d71f8ac72876ee9bc54487e1215bffb9bf9b8b258b827f232d3c1d7d81a6061828250f728a3096ca5767bbf1298c8e55e59cc43c5cda6c6cb965c WHIRLPOOL 2ca7df1e56dbf70cddcad71c7aeb13c16c87df2eee4012e3c0d9d8df140025652b50f556a4c5e1a755772ad13e6f80309fb761cc76abc0d2c238bf640a3be5b9
476 +AUX eblits/src_install.eblit 8242 SHA256 ea8d3afa5c76db97322a1108ba18c203be7d0b6994df146b65748045f1530f70 SHA512 1da934c4b9fc40549af5406eab7ae51c897ecd6f1c2305cdbc8a88ceaa55769adadacdec7398d2692b06c196ea15f689912a31b488c74a69d0bdccc20ca54c89 WHIRLPOOL cbf185343cbfe0e9cdf6b16d1726b112bd164bf5641847a123edc76039af3934d9659395ec2c333835bb4d83bf1afe507cfbecbd69c51de12fd1b8c9ca070956
477 AUX eblits/src_test.eblit 1278 SHA256 4cc565c9688292f1a195b4d9a5ba2d1b90ccc505e62229fc21d9fdf67d9655d5 SHA512 b058884a9ec43f047f10b6d61338366388dfb58c920e3f55baa85a9795750af7b8eafba427bb8ec59b1269853a4e4135b86a951f6513f64304461364b6f36a6f WHIRLPOOL 50b798092b0a9734767a8f9b7d3e1dc087d76e60f1dc83d6d5dde8aba48b992fb1b6eb6f07a9259b6fc4dac9bb391ab8972fd705be91ca15033d4d4144044e93
478 AUX eblits/src_unpack.eblit 5177 SHA256 c22b479fb56eed3c67fe03039ce6167f878d60e183814bbcd585ccf7154d8f2e SHA512 a348198ee078b28855b951a67cd645729ccb6560270b7fd3a4dd52a39e0d089c4067de7b286e060e021fb2cb67d65ea134a22b6d66b2d1980f4c183a4dd852c4 WHIRLPOOL 91f76ed06a3a8ece260901a357d73ba50aea9a67a41abb569c322e16c711770fa7983c9c4a603db68a99075d001390cfc68bc50cc21e5ab6148d62ebb55bea0f
479 AUX nscd 1621 SHA256 6165db3a2fcb251d4f3655c0461e018ce9c92a37f7f22a8fd2b75178b5435bc8 SHA512 3e1255ab014b3806112120000c3d2189a7c1c69dcd6639d5ce55e96bec721683a22b141982f6a6c6d44b14481c33fbbaa470863bef04e9b9eab7ccad1ddd5d95 WHIRLPOOL b7152f8d888fca13a16ea403c44eadbf1da2249dae3add11f73999259061824460a5479aa7e58c012bd737b62ecc81814109832cee33638279d90d4c08bfdbdc
480
481 diff --git a/sys-libs/glibc/files/eblits/src_install.eblit b/sys-libs/glibc/files/eblits/src_install.eblit
482 index f7eab49..2dca6f6 100644
483 --- a/sys-libs/glibc/files/eblits/src_install.eblit
484 +++ b/sys-libs/glibc/files/eblits/src_install.eblit
485 @@ -100,7 +100,7 @@ toolchain-glibc_src_install() {
486 has ${ldso_abi} $(get_install_abis) || continue
487
488 ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}"
489 - if [[ ! -L ${D}/${ldso_name} && ! -e ${D}/${ldso_name} ]] ; then
490 + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then
491 dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name}
492 fi
493 done