Gentoo Archives: gentoo-dev

From: Daniel Campbell <contact@××××××××.us>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] sys-devel/gcc::mgorny up for testing
Date: Sun, 07 Dec 2014 10:43:13
Message-Id: 54842F39.9090807@sporkbox.us
In Reply to: [gentoo-dev] sys-devel/gcc::mgorny up for testing by "Michał Górny"
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 On 12/07/2014 04:37 AM, Michał Górny wrote:
5 > Hello, developers and users.
6 >
7 > As some of you know, the toolchain packages in Gentoo suffer from
8 > lack-of-sanity issues and their maintainers are completely
9 > unwilling to improve things. I have finally decided to start
10 > working on a fork of the sys-devel/gcc ebuilds, and I have some
11 > bits ready for initial testing in 'mgorny' repo, so I would like
12 > to know your opinion.
13 >
14 >
15 > Before you start, the shortcomings are:
16 >
17 > 1. No cross-compilation support. If the project proves being a
18 > success it will be readded at some point. However, I will likely
19 > fork glibc first and work on a sane crossdev alternative.
20 >
21 > 2. No gcj support. Since the ebuild has been forked out of
22 > toolchain.eclass, and the gcj support suffers a lot of issues
23 > there, I decided there's no point in copying the code. Not sure if
24 > anybody actually uses it, and if it is actually useful for
25 > anything but will probably get reintroduced one day [above 'if'
26 > applies too].
27 >
28 > 3. No bootstrapping, fallbacks and possible some other random
29 > feature support. The goal was pretty much to get gcc compiling
30 > first, and avoid awful lot of effort if things prove to have no
31 > future.
32 >
33 > 4. Hardened is not tested. I think I have copied all the needed
34 > code and fixed some stuff but I have no clue if it still works ;).
35 >
36 >
37 > Now, the major changes are:
38 >
39 > 1. Most of the insanity removed. No more toolchain.eclass. The
40 > ebuild has just the code for the current gcc version. You can read
41 > it and know what it does, you don't have to parse a few dozen
42 > version conditionals, runtime conditionals and random crap code
43 > that doesn't do anything in some gcc versions. In fact, I think I
44 > removed most of the no-op code. And now you can actually change
45 > something in the ebuild without caring for gcc3.4, or without
46 > breaking stuff for stable ebuilds.
47 >
48 > 2. USE flags are supposed to work. I've replaced the cases when
49 > they were silently ignored with REQUIRED_USE. I've also removed
50 > the silent removals when they didn't work -- so if your current
51 > toolchain is broken, things may actually fail instead of giving
52 > your different gcc than you wanted. Probably deserves explanatory
53 > pkg_pretend() at some point, with messages like 'disable USE=-foo
54 > because your toolchain is broken'.
55 >
56 > 3. Things simplified where they could have been simplified. For
57 > example, I removed the big gcc executable moving function and
58 > replaced it with --enable-version-specific-runtime-libs. It was
59 > enabled in toolchain.eclass with a comment 'If we enable it on
60 > non-Darwin we screw up the behaviour this eclass relies on.' So
61 > yep, precious cargo cult -- why enable something that would
62 > require you to remove your useless complex function?!
63 >
64 > 4. Added gx86-multilib love. Now you have abi_* flags to control
65 > the compiler runtime. Of course, since gcc is a pile of random
66 > modules not fit for one another it has different code for
67 > different targets. In particular, on mips you can't do two ABIs --
68 > either single one (non-multilib) or all three of them
69 > (--enable-multilib).
70 >
71 > 5. Added multilib gcc wrappers. Long story short, multilib gcc now
72 > shows up in gcc-config alike crossdev -- but unlike i686
73 > crossdev, it doesn't screw up your system! Of course, the final
74 > implementation may differ since it's an early idea but it works.
75 > Now distcc happily builds stuff for your x86 clients.
76 >
77 > 6. Added missing dependencies. Yep, USE flags now, say, pull in
78 > doxygen rather than silently skipping doc build when it's not
79 > installed...
80 >
81 > 7. Disabled bootstrap by default (and in fact completely for now).
82 > It is not *that* useful, and means time savings (and distcc
83 > support):
84 >
85 > Thu Nov 6 20:39:31 2014 >>> sys-devel/gcc-4.9.2 merge time: 1
86 > hour, 56 minutes and 43 seconds.
87 >
88 > Sun Dec 7 10:46:08 2014 >>> sys-devel/gcc-4.9.2-r100 merge time:
89 > 34 minutes and 55 seconds.
90 >
91 >
92 > If you're interested in testing it, 'layman -a mgorny' and enjoy.
93 > I'd appreciate any bug reports, except for those covering things
94 > i've already listed as missing :). Any further comments will be
95 > very helpful in deciding on the way forward.
96 >
97 > If there is a real interest in my fork, I will probably move it to
98 > gx86 as sys-devel/gcc-mgorny. I will also be happy to work on
99 > replacing the new versions of original sys-devel/gcc completely.
100 > With QA process against toolchain.eclass if necessary.
101 >
102
103 As a user, what would adopting this do? For instance I run ~amd64
104 multilib and have had quite a time dealing with the recent multilib
105 changes (specifically with Humble Bundle games). Would you recommend
106 helping you test this simplified and/or cleaned up toolchain on one's
107 primary system, or is it better off for more specific systems that
108 don't need to be as versatile as a multi-purpose desktop machine?
109
110 Regardless, it seems really ambitious and I hope positive change comes
111 about for the toolchain.
112 -----BEGIN PGP SIGNATURE-----
113 Version: GnuPG v2
114
115 iQEcBAEBAgAGBQJUhC80AAoJEJUrb08JgYgHowwH/A7s/IBm6wbQL2HafNuYCN9f
116 I9MQlHeS7pBaf29u18nDPInFuViGgOfUjQBazhZ9TDdNFxG/EhmNhMfXRC0iIlPs
117 HV9MmPWOgRQCo6E0DtTw81+E2aEPiCurqpKpTtChFZlYgN31z3sx9prevwtH1vyT
118 ikHounODw4ml5aRCfQAm40Hgt+UJ5tre6mS9/3c/smmMSTO1/mxzxhMedHHs5Yol
119 sgghqbzce5TO/LWKFpR1Jti7qF967Y9UVvQUHa/qX+jFDMN2CgIVPWI2I2s9LeW5
120 rR/xe94lcgJDDhTxeBG5ep0o5JXhAjNeoCq/qgcbhGM1OTzBOI/aOGjYgYa8tfA=
121 =rsQ8
122 -----END PGP SIGNATURE-----

Replies

Subject Author
Re: [gentoo-dev] sys-devel/gcc::mgorny up for testing "Michał Górny" <mgorny@g.o>