Request for review: Build changes in preparation for SE-Embedded support

David Holmes David.Holmes at oracle.com
Tue Mar 15 21:59:28 UTC 2011


Hi Andrew,

See inline ...

Dr Andrew John Hughes said the following on 03/16/11 07:43:
> On 18:05 Tue 15 Mar     , David Holmes wrote:
>> BUILD_CLIENT_ONLY:
>>
>> http://cr.openjdk.java.net/~dholmes/jdk-bco/webrev/
>>
>> Provides support for building a JDK for which only the client VM is 
>> required and/or available. Essentially avoids copying any "server" 
>> components and creates a jvm.cfg file that aliases -server to -client. 
>> If BUILD_CLIENT_ONLY is selected on a 64-bit build then a sanity warning 
>> is issued. (This is only a warning because you can actually build 64-bit 
>> client Hotspot, it just isn't supported and you can't directly build it 
>> in a full JDK build without hacking a couple of Makefiles).
>>
> 
> There still seem to be some odd whitespace changes in this one.  Otherwise,
> looks sensible.

emacs reported odd whitespace (space+Tab) in one of the makefiles so I 
fixed it.

>> ---
>>
>> Cross-compilation support:
>>
>> http://cr.openjdk.java.net/~dholmes/jdk-crosscomp/webrev/
>>
>> Basic support for cross-compilation, plus flags/settings etc for basic 
>> ARM and PPC support in the shared open code. Cross-compilation works as 
>> follows:
>> - you must set the ALT_COMPILER_PATH and ALT_OPENWIN_HOME to point to 
>> your cross-compiler (you'll also need freetype configured correctly)
> 
> What is ALT_OPENWIN_HOME?  And why should using the cross-compilation build
> mean that 'X11 headers are not under /usr/include'?  Why 'OPENWIN' and not
> 'X11'?

OPENWIN_HOME/ALT_OPENWIN_HOME are the variables used to control where to 
find the graphics includes and libraries. These are pre-existing build 
variables (though part of the AWT update forward ports some changes from 
JDK6 that replaces hard-wired paths with use of these variables). When 
cross-compiling you need to use the graphics headers that are part of 
your cross-compilation toolset, not those on your build system (some 
compilers will even warn you if you do use the system ones).

OPENWIN is a legacy name from the old Solaris/SunOS graphics stack:

http://en.wikipedia.org/wiki/OpenWindows


>> - CROSS_COMPILE_ARCH should be set to the architecture you are building 
>> for eg ARM, PPC
>> - EXTRA_CFLAGS can be used to pass cross-compilation specific compile 
>> options
>> - HOST_CC is a compiler that can produces binaries that can run on the 
>> build host (used in a few parts of the JDK build). This defaults to gcc 
>> on Linux but must be explicitly set elsewhere
>> - Some build features such as freetype-check and 
>> binary-file-verification are disabled as they don't apply when 
>> cross-compiling
>>
> 
> Rest seems ok.

Thanks!

Once I have Kelly's ok I'll create the CRs and get this pushed ASAP.

David
-----

>> The above will form the basis of the documentation for these changes, 
>> but as it seems the docs live in a different repository (???) I'll need 
>> to file a separate CR etc for that.
>>
>> Thanks for the reviews.
>>
>> Kelly: I will need to push these via TL not BUILD due to various 
>> dependencies. However I also need the module changes to propagate from 
>> BUILD to TL before doing so. :(
>>
>> David Holmes
>> Java SE Embedded Group
> 



More information about the build-dev mailing list