Project Proposal: Build Infrastructure Changes

Mike Swingler swingler at apple.com
Tue May 3 20:13:02 UTC 2011


On May 3, 2011, at 11:27 AM, Kelly O'Hair wrote:

> On May 3, 2011, at 10:16 AM, Keith McGuigan wrote:
> 
>> On May 3, 2011, at 12:05 PM, Kelly O'Hair wrote:
>> 
>>> I was going to say that building hotspot does NOT require a Boot JDK to build, but I would be wrong, it does,
>>> but I agree, it probably should not. As I recall, there is some XML processing, the stupid gamma launcher Queens use,
>> 
>> Whoops... little typo here.  Shouldn't say "stupid gamma launcher", it should be, "incredibly-useful-for-debugging-the-JVM gamma launcher".  Easy mistake to make, though:  the keys are, like, right next to each other.  :)
> 
> No doubt it's been useful, but seriously, you just built a hotspot for jdk7, with a completely different
> C++ compiler, and a different C++ runtime dependency, and you plop it down into a jdk6 image (that
> was built with a different C++ compiler, and maybe using a different C++ runtime) and you guys'
> expect it to work reliably? It doesn't, and likely won't run in a cross compile environment at all.
> At a minimum, you should be plopping it into a jdk7 image, a jdk7 image built for the target arch you
> are building and can run, and when it comes down to it, isn't this actually a "test" of your build?
> 
> The number of issues with that gamma/Queens makefile logic is too high, and it's not something we ship
> anyway. In my opinion, we should be restricting ourselves to building what we ship as part of the product,
> or what we need to make that build happen.
> So in my opinion, the whole thing needs to be moved to the hotspot/test area.
> 
> In addition, the gamma launcher code is riddled with troublesome/buggy code that gets little attention, mostly
> because it isn't shipped as part of the product. If you guys want this code as part of the build, it needs
> some attention. If it is just a test case, then isolate it and make it one.
> 
> We need to do a better job of separating out the building logic from the testing logic.
> 
> Just my 2 cents... ;^)

Here here!

In the macosx-port we explicitly added a hook to ignore the gamma test because cross compiling with the Apple Java SE 6 (which is how _everyone_ gets off the ground) is impossible otherwise.

We've also had to workaround these things in our internal builds for years and years. If these tests were properly factored into a /tests directory, we could have removed some really ugly hacks to get the product to build itself.

Cheers,
Mike Swingler
Java Engineering
Apple Inc.




More information about the build-dev mailing list