Ted Neward ted at tedneward.com
Sat Mar 1 10:53:38 PST 2008




Ted Neward

ted at tedneward dot com


Revamp the OpenJDK build process on Windows



I propose to rewrite/port the OpenJDK build processes for the Windows

platform to take advantage of the new freely-available compilers and

toolchain (Visual C++ 2008 Express) and more Windows-friendly tools

(MinGW), so as to enable a more Windows-friendly environment in which

OpenJDK developers can more easily participate.


This proposal includes the following ideas


  o  adjust the Hotspot build processes to Visual C++ 9.0

  o  adjust the Hotspot build processes to make use of MSBuild

  o  adjust the overall build environment to use MinGW instead of Cygwin


The result of the proposal will be an environment by which developers

working on the Windows platform can simply download MinGW and the

freely-available Visual C++ Express, run the appropriate batch file to

establish an environment in which to build, and type “make”.



The Clear Need



Building the JDK on Windows has always been an arcane art. A quick 

glance at the build-dev mailing list archives reveals the disparity in

ease between building the OpenJDK on a *nix-based platform and doing

the same on Windows. The fact that Sun’s own expertise is clearly

focused on the *nix platform does not help matters; developers trying

to build the OpenJDK on Windows end up facing numerous challenges and

find close to zero resources "in the field" to help navigate some of

the more treacherous paths, despite the fact that the Windows platform,

for all its flaws, clearly remains one of the most important development

platforms of the day.


If the OpenJDK project is going to be open to developers working on the

Windows platform, significant steps must be made to ease this process.


The transition to the free Microsoft toolchains will also have a huge

financial impact on the OpenJDK community--and Sun Microsystems in

particular, in that now the Professional versions (which charge a

license fee for each seat using it) are required in order to build

the OpenJDK sources, at several thousand dollars a head. Porting this

over to Visual C++ Express and/or MinGW’s gcc could reduce that cost

to zero.



Development Guidelines



Development of this project will take place in accordance with the

openjdk development guidelines, on a branch of the official Mercurial

repositories. No structural source changes are anticipated, however

major changes to the build processes (makefiles and shell scripts) are

obviously a key part of the project.



Dependence on Sun and other resources



Development of this project should not require significant amounts of

Sun resources: some level of coordination with the build team, most

notably Kelly O’Hair and possibly any other Sun developers involved

with the Windows build process, will obviously be required, and some

degree of coordination with the development teams writing platform-

specific parts of the OpenJDK sources (AWT, JavaSound, etc) may be

required in order to ensure a smooth transition when compiling native

code, but this is not anticipated to be large--ideally, a simple request

to test the candidate build structure periodically and report errors.



Project Plan and Milestones



It is difficult to provide milestones and a concrete plan at this time,

as much of this project is research-based: does the Visual C++ Express

product have all the necessary library and include file support to

build the OpenJDK, does the MinGW toolchain provide the necessary tools

to build the OpenJDK, and so on. It is believed that the project would

not exceed several months of work, however this is merely a guess at

this point in time.


Some of the project goals are also potentially unclear: for example,

Microsoft’s clear “path forward” with respect to build tools is to use

MSBuild instead of Makefiles, however, MinGW could continue to use

GNU make (or something similar) if the supporters of this proposal felt

that a change to MSBuild would create a "competency gap" that the

OpenJDK community would have a hard time closing. These recommendations

could heighten or reduce project work accordingly.






This proposal, in its entirety, is hereby contributed under the terms

of the Sun Contributor Agreement.


Ted Neward

Java, .NET, XML Services

Consulting, Teaching, Speaking, Writing

HYPERLINK "http://www.tedneward.com"http://www.tedneward.com


No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.516 / Virus Database: 269.21.2/1305 - Release Date: 2/29/2008
6:32 PM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/challenge-discuss/attachments/20080301/1f8784cb/attachment.html 

More information about the challenge-discuss mailing list