New builds from the build-infra team

David Holmes david.holmes at oracle.com
Wed Nov 7 19:41:00 PST 2012


On 8/11/2012 6:22 AM, Kelly O'Hair wrote:
> On Nov 7, 2012, at 6:16 AM, Anthony Petrov wrote:
>> 2. What is the ./build/linux-x86-normal-server-release directory, and why is it not ./build/linux-i586 ? What does 'normal' stand for? The same question about the 'server' part.
>>
>
> The configure allows for many variations on builds, and the basic variation is put into the directory name.
>
> I have been tempted to soft link linux-i586 to linux-x86-normal-server-release or whatever linux-x86-*name is generated
> (assuming only one exists), but it gets a little complicated.

A couple of comments on this. As Kelly says a "configuration" can be set 
up to build a range of different, well, configurations, and the default 
output name reflects what you have chosen (directly or implicitly).

The "normal" is in contrast to "embedded" (which of course is not 
applicable to OpenJDK builds). When the conversion was first started the 
embedded build support was in the open and so two JDK variants were 
defined. Now that the embedded build support is in the closed repo we 
still need two variants but people only using open repos can't see there 
is any alternative to "normal".

The "server" part is important as it indicates what flavor(s) of hotspot 
this configuration will build. By default (why?) only the server VM is 
built - whereas in the old build both client and server are built. So 
you need to add --with-jvm-variant=client,server if you want both.

The "release" indicates a product build as opposed to fastdebug, for 
example.

Personally I never let configure define or name the output directory. My 
preferred approach is (via scripts) to do:

mkdir <output-dir>
cd <output-dir>
bash <path-to-configure> configure.sh <options>

There may also be a configure option to name the output directory 
explicitly.

>> 3. I get the following error and the build stops:

This might not be relevant but you need to be careful if you are 
building 32-bit on an x64 machine. If you do that you need to pass 
--with-target-bits=32. Otherwise the default build on x64 is 64-bit.

David
------



More information about the build-infra-dev mailing list