dan's build on windows succeeded too!

Dan Fabulich dan at fabulich.com
Mon Aug 13 00:55:41 UTC 2007


I'm pleased to announce that I've also gotten build 17 to succeed on 
Windows.

Notably, I used a copied-and-pasted version of Igor's buildenv.bat file, 
which I then tweaked with my own paths.  Here's the tweaking I needed to 
do:

1) Path ordering confused localegen: Using Igor's env vars, I reproduced 
the '\r' problem in LocaleMetaDataInfo.java that Igor reported earlier. 
Unfortunately, at least in my case, changing the awk command line did not 
work around the problem.

Digging just a bit deeper, I found that localegen.sh was naively invoking 
"sort" right off the path, a version of which comes with Windows as 
c:\windows\system32\sort.exe.  Since Igor's PATH called for using 
c:\windows\system32 prior to cygwin\bin, Windows' sort.exe was used, which 
inserted Windows-ish line endings.  Changing the PATH to use cygwin\bin 
first fixed the problem.

It would be wise to add a sanity check to make sure that "sort" is not 
Windows' sort.exe.

2) User name contained spaces: I also found that the scripts like to 
insert the current user's name into various version strings; this doesn't 
work when one's user name has a space in it.  (My default user name on 
Windows XP is "Dan Fabulich.")  To remedy this, I set my USERNAME 
environment variable to just be "dan", and made a symlink from /home/dan 
to /home/Dan\ Fabulich.

It would be wise to add a sanity check to make sure that $USERNAME 
contains no spaces.

3) Unicows.lib: Igor linked to a place where you can download unicows, and 
his buildenv.bat indicated that unicows.dll and unicows.lib would be in 
the same location.
http://www.microsoft.com/downloads/details.aspx?FamilyId=73BA7BD7-ED06-4F0D-80A4-2A7EEAEE17E2&displaylang=en

I found that when I downloaded unicows.exe and extracted it, I got 
unicows.dll and .pdb, but no .lib.  As far as I know, unicows.lib is NOT 
available on the web, but is only available as part of Visual Studio.

In summary, here's the buildenv.bat that worked for me:

******************
title openjdk
set PATH=c:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
set LD_LIBRARY_PATH=
set CLASSPATH=
set JAVA_HOME=

set ALT_BOOTDIR=C:/devtools/jdk1.6.0_00
set ALT_OUTPUTDIR=c:/devtools/openjdk-build
set ALT_BINARY_PLUGS_PATH=C:/devtools/openjdk-binary-plugs-b17

rem not mentioned in the README-builds.html? (place hotspot VM comes from) 
rem TODO: try to point to openjdk vm
set ALT_JDK_IMPORT_PATH=C:/devtools/jdk1.6.0_00

set ALT_DXSDK_PATH=C:/PROGRA~1/MICROS~1.0SD

set VC=C:/PROGRA~1/MICROS~2.NET
set ALT_COMPILER_PATH=%VC%/VC7/Bin
set ALT_MSDEVTOOLS_PATH=%VC%/Common7/Tools/Bin
set ALT_MSVCR71_DLL_PATH=%VC%/SDK/v1.1/Bin

rem using Igor's build of Freetype
set ALT_FREETYPE_LIB_PATH=C:/devtools/freetype/freetype-i586/lib
set ALT_FREETYPE_HEADERS_PATH=C:/devtools/freetype/freetype-i586/include

rem NB: not documented? will be removed in b18?
rem http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6332635
rem unicows.dll is available on the web. 
rem E.g. http://tinyurl.com/qynq
set ALT_UNICOWS_LIB_PATH=%VC%/Vc7/PLATFO~1/Lib
set ALT_UNICOWS_DLL_PATH=c:/devtools/unicows

rem bug in the makefiles: should be set prior to freetypecheck. 
rem TODO: file it
set OPENJDK=true

set HOME=/home/dan
set USERNAME=dan

call %vc%\Common7\Tools\vsvars32.bat

bash
****************

Running this script and executing the build from within bash, I did "cd 
control/make" and ran "make sanity".  It succeeded.  Then I ran "make"; a 
while later, I got a working JDK.

-Dan



More information about the discuss mailing list