----- Original Message ----- > On 08/20/2015 09:27 AM, Andrew Haley wrote: > > On 08/20/2015 03:57 PM, Andrew Hughes wrote: > >> ----- Original Message ----- > >>> On 20/08/15 09:24, Matthias Klose wrote: > >>>> On 08/20/2015 06:36 AM, Tom Tromey wrote: > >>>>> Andrew> No, it isn't. It's still a necessity for initial bootstrapping > >>>>> of > >>>>> Andrew> OpenJDK/IcedTea. > >>>>> > >>>>> Andrew Haley said the opposite here: > >>>>> > >>>>> https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00537.html > >>>> > >>>> if you need bootstrapping OpenJDK 6 or OpenJDK 7, then having gcj > >>>> available for the target platform is required. Starting with OpenJDK > >>>> 8 you should be able to cross build OpenJDK 8 with an OpenJDK 8 > >>>> available on the cross platform. It might be possible to cross > >>>> build older OpenJDK versions, but this usually is painful. > >>> > >>> Sure, but we don't need GCJ going forward. I don't think that there > >>> are any new platforms to which OpenJDK has not been ported which will > >>> require GCJ to bootstrap. And even if there are, anybody who needs to > >>> do that can (and, indeed, should) use an earlier version of GCJ. It's > >>> not going to go away; it will always be in the GCC repos. And because > >>> newer versions of GCC may break GCJ (and maybe OpenJDK) it makes more > >>> sense to use an old GCC/GCJ for the bootstrapping of an old OpenJDK. > >> > >> I don't see how we don't at present. How else do you solve the > >> chicken-and-egg situation of needing a JDK to build a JDK? I don't > >> see crossing your fingers and hoping there's a binary around > >> somewhere as a very sustainable system. > > > > That's what we do with GCC, binutils, etc: we bootstrap. > Right. So the question is there some reason why OpenJDK can't be used > to bootstrap itself? Ie, is there a fundamental reason why Andrew needs > to drop back down to GCJ and start the bootstrapping process from scratch. > > ISTM that ideally the previous version of OpenJDK would be used to > bootstrap the new version of OpenJDK. > > Which leaves the question of how to deal with new platforms, but it > sounds like there's a cross-compilation process starting with OpenJDK 8 > which ought to solve that problem. >
The issue is that we're still supporting a version of OpenJDK/IcedTea where there is no previous version (6). Once that goes, gcj could go too. This is still just a little too soon. > > > > >> From a personal point of view, I need gcj to make sure each new > >> IcedTea 1.x and 2.x release bootstraps. > > > > Sure, but all that does is test that the GCJ bootstrap still works. > > And it's probably the only serious use of GCJ left. > And how much value is there in that in the real world? > I do know it's been used recently on Gentoo to bootstrap IcedTea on non-x86 archs. That's where it comes unstuck. How do you get a JDK built when there are no JDK binaries for your architecture? > > > > It's not a sudden whim: it's something we've been discussing for years. > > The only reason GCJ is still alive is that I committed to keep it > > going while we still needed it boot bootstrap OpenJDK. Maintaining > > GCJ in GCC is a significant cost, and GCJ has reached the end of its > > natural life. Classpath is substantially unmaintained, and GCJ > > doesn't support any recent versions of Java. > Right. I think we last discuss this in 2013 and there was still some > benefit in keeping GCJ building, but that benefit is dwindling over time. > > > There's an ongoing cost to every GCC developer to keep GCJ functional as > changes in the core compiler happen. Furthermore, there's a round-trip > cost for every patch under development by every developer in the > boostrap & testing cycles. > > Given the marginal benefit to GCC and OpenJDK and the fairly high cost, > we'd really prefer to drop GCJ. > I'm not against this long-term, just not immediately. Deprecating it now and removing it in the next release cycle (7?) would probably be enough, but we need a little more time to wind down dependencies. I don't see us needing it in a GCC released in 2017. > > Jeff > > -- Andrew :) Senior Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: ed25519/35964222 (hkp://keys.gnupg.net) Fingerprint = 5132 579D D154 0ED2 3E04 C5A0 CFDA 0F9B 3596 4222 PGP Key: rsa4096/248BDC07 (hkp://keys.gnupg.net) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07