I have to agree with Jonathan here. I don't think a boot cycle build should be a configure option.
-kto On Sep 10, 2012, at 9:04 AM, Jonathan Gibbons wrote: > That would depend on the semantics of --enable-boot-cycle. > > Building with a boot cycle should not be a configuration option. The ability > to do a boot cycle should (IMO) always be enabled. The choice of whether to > build with a boot cycle should be made by the user at the time "make" is > invoked, by specifying an appropriate target (or option). > > This links up with the separation discussion about partial builds, in that > different devs choose to go to different points in the build sequence. The > "full" build sequence should be to build a boot cycle build. But along the > way are various targets of interest. These include > build javac (of interest to langtools devs) > build the equivalent of today's jdk/build/classes (of interest to jdk devs) > build initial images (maybe of interest to integrators, etc, if not doing > boot cycle build) > build final images after boot cycle (for integrators, etc) > > As a developer, depending on where I am in the dev process, I want to be able > to go to my desired point in the build sequence. Initially, I want to just > build javac. Later on, I may want to go to "initial images". Eventally, > near commit/push, I may want to do a full boot cycle build. I would not > expect to have to reconfigure my build in order to do this. > > -- Jon > > > On 09/10/2012 11:04 PM, Fredrik Öhrström wrote: >> Sure, that would be trivial. But is it a good design? You would need some >> way to differentiate configure arguments and make arguments on the command >> line. >> >> A nicer way would be to have --enable-boot-cycle on the configure script. >> The option was there for quite some time, in anticipation of this feature, >> however it seems to have been removed. >> >> //Fredrik >> >> 11 sep 2012 kl. 01:00 skrev Jonathan Gibbons: >> >>> Can we have a makefile target that invokes your script? E.g. make >>> full-build. >>> >>> It is easier to document the list of public targets supported by the >>> Makefiles than to describe a set of assorted extra scripts. And, it would >>> fit more uniformly into the JPRT infrastructure. >>> >>> -- Jon >>> >>> On 09/10/2012 03:27 PM, Fredrik Öhrström wrote: >>>> You are right Jon, it is rather easy to do. I just pushed boot_cycle.sh >>>> into build-infra. >>>> >>>> You can do: >>>> >>>> sh common/bin/boot_cycle.sh >>>> >>>> and it will create boot_cycle_1 in build, and build the complete product >>>> there (including images) >>>> then it will create boot_cycle_2 and configure it to use boot_cycle_1 as >>>> the boot jdk. >>>> >>>> You can also add explicit configure arguments: >>>> sh common/bin/boot_cycle.sh --with-jvm-variants=server --with-boot-jdk=….. >>>> >>>> and it will use the arguments to the configure invocations. The >>>> --with-boot-jdk= is of course >>>> adjusted for the second cycle. >>>> >>>> This boot_cycle.sh script has already demonstrated that --enable-debug >>>> generates binaries >>>> that crash on linux x64…… :-) something that we have to fix. >>>> >>>> //Fredrik >>>> >>>> 10 sep 2012 kl. 17:09 skrev Jonathan Gibbons: >>>> >>>>> Using SKIP_BOOT_CYCLE=false has often flushed out bugs, and I would be >>>>> concerned about its removal. >>>>> >>>>> Is it really that hard to provide the same functionality in the new build >>>>> system? Surely, it should just be a matter of a couple of recursive >>>>> makes at the top-level, the first into an "interim" build dir and the >>>>> second using the result of the first as its ALT_BOOTDIR. >>>>> >>>>> -- Jon >>>>> >>>>> >>>>> On 09/10/2012 04:43 AM, Magnus Ihse Bursie wrote: >>>>>> In the old system, one can set the oddly named SKIP_BOOT_CYCLE to false >>>>>> (which, internally, sets the slightly more clearly named >>>>>> DO_BOOT_CYCLE=true). This causes the product to build twice, the second >>>>>> time using the first build result as the boot jdk. >>>>>> >>>>>> This has been used, as I understand it, as a "poor mans integration >>>>>> test" -- if the build output could perform the feat of compiling the >>>>>> JDK, then it can't be that broken. >>>>>> >>>>>> This kind of behaviour is not implemented in the new build system, and I >>>>>> propose that it should not be. The cost for implementing this is that >>>>>> all build system for all builds will be more complicated, but the gains >>>>>> are more unclear. To me, this is just a test, and it's a bit odd to have >>>>>> that as part of the build system. I also believe are now far better >>>>>> tests using jtreg, and if they are lacking -- then the tests should be >>>>>> improved, not the build system changed. >>>>>> >>>>>> Is there anyone who would be protesting if the SKIP_BOOT_CYCLE >>>>>> functionality would be dropped in the new build system? >>>>>> >>>>>> /Magnus >