My original reply does not seem to have made it to build-dev.

I've updated the webrev again to accommodate openjdk builds that set REDUCED_JRE and/or REDUCED_HEADLESS_JRE. The main changes are:

- don't try to run freetypecheck when cross-compiling
- delete build of freetypecheck from make/tools/Makefile as Sanity.gmk will build if needed - for OpenJDK builds leave the JRE fonts alone (the Lucida fonts that we don't delete are not part of OpenJDK)

David
-----

David Holmes said the following on 03/09/11 09:33:
Andrew,

Dr Andrew John Hughes said the following on 03/09/11 03:24:
On 10:51 Tue 08 Mar     , David Holmes wrote:
Just to clarify for people, BUILD_CLIENT_ONLY refers to building the client VM only. Some of these variables should be documented in the top level README-builds.html file, but that
can be done under a separate CR if necessary.

What happens if there is no client VM e.g. x86_64?
If you are not building a client-only configuration then you should not set BUILD_CLIENT_ONLY. It's main purpose is to not attempt to copy lib/<arch>/server/*.so files into the JRE/JDK image when they don't exist.


But what if someone does?  Will the sanity check not catch this?

If you specify BUILD_CLIENT_ONLY then you are telling the build system to not try and copy/define anything pertaining to the server VM. Whether or not you've built a server VM in such circumstances is irrelevant and certainly not a fatal error requiring a sanity check (I'm not even sure the sanity check can tell).

I can certainly refactor into general flags, however applying those flags to all parts of the JDK build process that might want to use them is out-of-scope for what I am trying to achieve here (I just won't have time to do this and go through a myriad of builds and test runs). I'd also prefer not to create multiple changesets, which implies multiple CRs. I can't easily test these things in isolation, and individual changesets would require complete build/test cycles that I again do not have time to perform.


I can see the issue with it taking more time, but committing the patch in its current form is unfair on others who now have a more convoluted build system to deal with (and it's already bad to start with) and no gain from the patch.

The intent is that anyone not setting any of the "new" build variables will be unaffected by these changes. They may benefit from the basic cross-compilation support, and the ability to produce a client-only JRE/JDK.

Does the revised structure improve things from your perspective?

Does your employer not allocate sufficient time to do the best work you can
on such changes?

We all have schedules and deadlines to meet. These changes have been percolating for sometime now and my window for getting them out is quite narrow. My problem is exacerbated by the fact that JDK7 is a fast moving target at the moment and so I'm continually having to merge changes, update things that break my build, and go through the rebuild cycle again to verify things. Hence I want to try and push things through in one hit (in actuality several other changes that are more stand-alone have already been broken off from this).

Has this been tested on an OpenJDK build at all? It also seems to create a fonts.dir file with fonts
that aren't part of OpenJDK.
No, not OpenJDK. I have done a regular JDK build, but not OpenJDK. And I have not attempted to test things like BUILD_CLIENT_ONLY outside of a JAVASE_EMBEDDED build.

With regard to the fonts, my understanding is that we simply define a subset of the fonts used in the regular JDK. I have no idea how such fonts get shipped nor whether they are part of the OpenJDK or only Oracle's JDK.


An OpenJDK build definitely needs to be performed before this is committed, as I think it may break the build or, at the very least, create references
to non-existent fonts.

I have no problem doing an OpenJDK build on this, I will attempt an OpenJDK build that uses all of the new flags except for actually defining JAVASE_EMBEDDED. That said I still don't understand the font issue. We delete a bunch of fonts and then create a fonts.dir file that refers to the set of fonts we didn't delete. Are these fonts not present in an OpenJDK build? I can make that part conditional on it not being an OpenJDK build if that is the case.

Thanks again for the feedback.

David

Thanks again,

David

-kto


On Mar 7, 2011, at 2:14 AM, David Holmes wrote:

http://cr.openjdk.java.net/~dholmes/7025066/webrev/

The SE-Embedded product is a combination of open and closed sources. To allow SE-Embedded to be built from standard OpenJDK sources we need to apply a number of changes to the SE 7 build system:

- support for building the hotspot client compiler only (hotspot already supports this, this is the JDK side of things)
- support for doing cross-compilation (Linux only)
- minimal support for ARM/PPC architectures in the open code that currently only knows about x86 and sparc - SE-Embedded specific build settings and targets (specifically the headful and headless reduced JRE images)

---

These changes are obviously primarily for Oracle's benefit, but some aspects may be use of externally as well. The hope is that these changes won't have an adverse affect on any downstream OpenJDK builders, but until I get feedback on that I won't know.

Thanks,
David Holmes
SE Embedded Team



Reply via email to