On 08/20/2015 10:03 AM, Andrew Hughes wrote:
----- 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.
But surely OpenJDK6 can build OpenJDK6, right? I don't see you're fundamentally getting anything from always starting with a GCJ bootstrap.


That's where it comes unstuck. How do you get a JDK built when there are
no JDK binaries for your architecture?
Cross compilation, just like folks do for Ada.




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.
I was of the opinion that we should remove it from the default languages to be built. Others wanted to be more aggressive :-)

jeff

Reply via email to