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 |