Help building under Windows7 64-bit

Kelly O'Hair kelly.ohair at oracle.com
Mon Jun 7 23:45:56 UTC 2010


Can you provide some detailed instructions so I could add it to the  
README-builds.html file?

-kto

On Jun 7, 2010, at 4:11 PM, Lussier, Denis wrote:

> The latest Freetype sources build quite easily on Windoze (at least on
> Win32 using VS2003).
>
>
> On 6/7/10, Kelly O'Hair <kelly.ohair at oracle.com> wrote:
>>
>> Note that Windows7 is a bit of an unknown to use as far as being a
>> build machine, it should work, but in
>> general, the formal 32bit builds of jdk7 use older Windows releases,
>> e.g. 2000 and soon that newer one "XP" ;^)
>> You are trying a 64bit build with Visual Studio 10, on Windows 7, an
>> even more unused combination.
>>
>> But in general, the windows build machine setup is a royal pain, and
>> not easy at all. Believe it or not, it
>> used to be much worse. :^(  Just remember to count to 10 and calm  
>> your
>> mind a few times during the process.
>>
>> a few comments below...  but you are in very very unknown waters  
>> here.
>>
>> On Jun 7, 2010, at 11:27 AM, cowwoc wrote:
>>
>>>
>>> Hi,
>>>
>>> I am attempting to build OpenJDK under Windows7 64-bit, Visual
>>> Studio 2010.
>>> Here is the output of "make sanity":
>>>
>>> --------------
>>> ( cd  ./jdk/make && \
>>> 	  make sanity HOTSPOT_IMPORT_CHECK=false
>>> JDK_TOPDIR=C:/users/gili/DOCUME~1/jdk7/jdk7/jdk
>>> JDK_MAKE_SHARED_DIR=C:/users/gili/DOCUME~1/jdk7/jdk7/jdk/make/ 
>>> common/
>>> shared
>>> EXTERNALSANITYCONTROL=true SOURCE_LANGUAGE_VERSION=7
>>> TARGET_CLASS_VERSION=7
>>> MILESTONE=internal BUILD_NUMBER=b00 JDK_BUILD_NUMBER=b00
>>> FULL_VERSION=1.7.0-internal-gili_2010_06_07_14_23-b00
>>> PREVIOUS_JDK_VERSION=1.6.0 JDK_VERSION=1.7.0 JDK_MKTG_VERSION=7
>>> JDK_MAJOR_VERSION=1 JDK_MINOR_VERSION=7 JDK_MICRO_VERSION=0
>>> PREVIOUS_MAJOR_VERSION=1 PREVIOUS_MINOR_VERSION=6
>>> PREVIOUS_MICRO_VERSION=0
>>> ARCH_DATA_MODEL=64 COOKED_BUILD_NUMBER=0 ANT_HOME="C:\Program
>>> Files\apache-ant-1.8.0"
>>
>> Your ANT_HOME setting is using \ and has spaces in the path.
>> Try:
>>    export ANT_HOME=`cygpath -m -s "${ANT_HOME}"`
>>
>>> ALT_OUTPUTDIR=C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64
>>> ALT_LANGTOOLS_DIST=C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-
>>> amd64/langtools/dist
>>> ALT_CORBA_DIST=C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/
>>> corba/dist
>>> ALT_JAXP_DIST=C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/
>>> jaxp/dist
>>> ALT_JAXWS_DIST=C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/
>>> jaxws/dist
>>> ALT_HOTSPOT_IMPORT_PATH=C:/users/gili/DOCUME~1/jdk7/jdk7/build/
>>> windows-amd64/hotspot/import
>>> BUILD_HOTSPOT=true ; )
>>> /bin/sh: C:Program: command not found
>>> make[1]: Entering directory
>>> `/cygdrive/c/users/gili/Documents/jdk7/jdk7/jdk/make'
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/jdk/make/common/shared/Sanity-
>>> Settings.gmk:120:
>>> WARNING: ANT_VER should not be empty [Sanity-Settings.gmk]
>>> /bin/sh: line 0: [: /bin/sh:: integer expression expected
>>> /bin/sh: line 0: [: /bin/sh:: integer expression expected
>>> /bin/sh: line 0: [: /NO_BOOTDIR/bin/java:: integer expression  
>>> expected
>>> /bin/sh: line 0: [: /NO_BOOTDIR/bin/java:: integer expression  
>>> expected
>>> /bin/sh: line 0: [: No: integer expression expected
>>> /bin/sh: line 0: [: No: integer expression expected
>>
>> The above may all be due to the ANT_HOME, but there was some issues
>> with CYGWIN 1.7. utilities not
>> behaving correctly or behaving differently. But I thought that was
>> fixed.
>>
>> Looks like you failed to set ALT_BOOTDIR too???
>>
>>> make[2]: ***
>>> [C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/btbins/
>>> freetype_versioncheck.exe]
>>
>> Damn freetype...  sorry..
>>
>> The freetype sanity check trys to build a small program and then run
>> it to get the freetype
>> version number and also verify the freetype libraries at least load.
>> So the makefile at jdk/make/tools/freetype is failing somehow.
>> This freetype dependence is painful, and building it on windows is a
>> bit painful, but once
>> you have it built, you can set ALT_FREETYPE_* env vars to point at  
>> the
>> include and lib
>> directories. I don't think you can use the CYGWIN freetype libraries
>> and include files, but
>> I'm not sure, they would need to be 64bit too...
>>
>> I wish I could provide more details here, but I find freetype as
>> frustrating as the rest of you. :^(
>>
>>> Error 2
>>> make[1]: Leaving directory
>>> `/cygdrive/c/users/gili/Documents/jdk7/jdk7/jdk/make'
>>>
>>> Build Machine Information:
>>>  build machine = STALKER
>>>
>>> Build Directory Structure:
>>>  CWD = /cygdrive/c/users/gili/Documents/jdk7/jdk7
>>>  TOPDIR = .
>>>  CONTROL_TOPDIR = .
>>>  LANGTOOLS_TOPDIR = ./langtools
>>>  JAXP_TOPDIR = ./jaxp
>>>  JAXWS_TOPDIR = ./jaxws
>>>  CORBA_TOPDIR = ./corba
>>>  HOTSPOT_TOPDIR = ./hotspot
>>>  JDK_TOPDIR = ./jdk
>>>
>>> Build Directives:
>>>  BUILD_LANGTOOLS = true
>>>  BUILD_JAXP = true
>>>  BUILD_JAXWS = true
>>>  BUILD_CORBA = true
>>>  BUILD_HOTSPOT = true
>>>  BUILD_JDK    = true
>>>  DEBUG_CLASSFILES =
>>>  DEBUG_BINARIES =
>>>
>>> Hotspot Settings:
>>>     HOTSPOT_BUILD_JOBS  =
>>>     HOTSPOT_OUTPUTDIR   =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/hotspot/ 
>>> outputdir
>>>     HOTSPOT_EXPORT_PATH =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/hotspot/import
>>>
>>>
>>>
>>>
>>> Bootstrap Settings:
>>> BOOTDIR = /NO_BOOTDIR
>>>   ALT_BOOTDIR =
>>> BOOT_VER = /bin/sh: /NO_BOOTDIR/bin/java: No such file or directory
>>> [requires at least 1.5]
>>
>> You need to set ALT_BOOTDIR to a jdk6 or jdk7 home.
>>
>>> OUTPUTDIR = C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64
>>>   ALT_OUTPUTDIR = C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-
>>> amd64
>>> ABS_OUTPUTDIR = C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64
>>>
>>> Build Tool Settings:
>>> SLASH_JAVA = J:
>>>   ALT_SLASH_JAVA =
>>> VARIANT = OPT
>>> JDK_DEVTOOLS_DIR = J:/devtools
>>>   ALT_JDK_DEVTOOLS_DIR =
>>> ANT_HOME = C:\Program Files pache-ant-1.8.0
>>
>> see comment above on ANT_HOME
>>
>>> UNIXCOMMAND_PATH = /usr/bin/
>>>   ALT_UNIXCOMMAND_PATH =
>>> COMPILER_PATH = C:/PROGRA~2/MICROS~2.0/Common7/Tools/../../Vc/bin/
>>> amd64/
>>>   ALT_COMPILER_PATH =
>>> DEVTOOLS_PATH = /usr/bin/
>>>   ALT_DEVTOOLS_PATH =
>>> MSVCRT_DLL_PATH = C:/Windows/system32
>>>   ALT_MSVCRT_DLL_PATH =
>>> MSVCRNN_DLL_PATH =
>>>   ALT_MSVCRNN_DLL_PATH =
>>> MSDEVTOOLS_PATH =
>>> C:/PROGRA~2/MICROS~2.0/Common7/Tools/../../Vc/bin/amd64/../../../
>>>   ALT_MSDEVTOOLS_PATH =
>>> COMPILER_NAME = Microsoft Visual Studio 10 (16.00.30319.01)
>>> COMPILER_VERSION = VS2010
>>> CC_VER = 16.00.30319.01 [requires at least 16.00.30319.01]
>>
>> Did you run vcvars32.bat or vsvars32.bat? Just curious if the PATH,
>> LIB and INCLUDE env vars are setup right.
>>
>>> ZIP_VER = 3.0 [requires at least 2.2]
>>> UNZIP_VER = 6.00 [requires at least 5.12]
>>> LINK_VER = 10.00.30319.01 [requires at least 10.00.30319.01]
>>> TEMPDIR = C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/tmp
>>>
>>> Build Directives:
>>> OPENJDK = true
>>> USE_HOTSPOT_INTERPRETER_MODE =
>>> PEDANTIC =
>>> DEV_ONLY =
>>> NO_DOCS =
>>> NO_IMAGES =
>>> TOOLS_ONLY =
>>> INSANE =
>>> COMPILE_APPROACH = normal
>>> FASTDEBUG =
>>> COMPILER_WARNINGS_FATAL = false
>>> COMPILER_WARNING_LEVEL = 3
>>> INCREMENTAL_BUILD = false
>>> CC_HIGHEST_OPT =
>>> CC_HIGHER_OPT =
>>> CC_LOWER_OPT =
>>> CXXFLAGS =  -O1 -Zi -nologo -MD /D _STATIC_CPPLIB -Zc:wchar_t-
>>> -FdC:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/tmp/ 
>>> obj64/.pdb
>>> -FmC:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/tmp/ 
>>> obj64/.map
>>> -wd4800 -W3 -D _CRT_SECURE_NO_DEPRECATE
>>> CFLAGS =  -O1   -Zi -nologo -MD /D _STATIC_CPPLIB -Zc:wchar_t-
>>> -FdC:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/tmp/ 
>>> obj64/.pdb
>>> -FmC:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/tmp/ 
>>> obj64/.map
>>> -wd4800 -W3 -D _CRT_SECURE_NO_DEPRECATE
>>> BOOT_JAVA_CMD = /NO_BOOTDIR/bin/java -XX:-PrintVMOptions
>>> -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx896m -Xms128m
>>> -XX:PermSize=32m -XX:MaxPermSize=160m
>>> BOOT_JAVAC_CMD = /NO_BOOTDIR/bin/javac  -J-XX:ThreadStackSize=1536
>>> -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-
>>> LogVMOutput
>>> -J-Xmx896m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -
>>> encoding
>>> ascii -source 6 -target 6 -XDignore.symbol.file=true
>>> BOOT_JAR_CMD = /NO_BOOTDIR/bin/jar
>>> BOOT_JARSIGNER_CMD = /NO_BOOTDIR/bin/jarsigner
>>>
>>> Build Platform Settings:
>>> USER = Gili
>>> PLATFORM = windows
>>> ARCH = amd64
>>> LIBARCH = amd64
>>> ARCH_FAMILY = amd64
>>> ARCH_DATA_MODEL = 64
>>> ARCHPROP = amd64
>>> PROCESSOR_ARCHITECTURE = x86
>>> PROCESSOR_IDENTIFIER = Intel64 Family 6 Model 15 Stepping 11,
>>> GenuineIntel
>>> USING_CYGWIN = true
>>> CYGWIN_VER = 6.1 [requires at least 4.0]
>>> CYGPATH_CMD = cygpath -a -s -m
>>> OS_VERSION = 6.1 [requires at least 5.2]
>>> OS_VARIANT_NAME =
>>> OS_VARIANT_VERSION = 6.1
>>> TEMP_FREE_SPACE = 52973652
>>> FREE_SPACE = 52973652
>>> MB_OF_MEMORY = 4095
>>>
>>> GNU Make Settings:
>>> MAKE = make
>>> MAKE_VER = 3.81 [requires at least 3.78]
>>> MAKECMDGOALS = sanity
>>> MAKEFLAGS = w
>>> SHELL = /bin/sh
>>>
>>> Target Build Versions:
>>> JDK_VERSION = 1.7.0
>>> MILESTONE = internal
>>> RELEASE = 1.7.0-internal
>>> FULL_VERSION = 1.7.0-internal-gili_2010_06_07_14_23-b00
>>> BUILD_NUMBER = b00
>>>
>>> External File/Binary Locations:
>>> USRJDKINSTANCES_PATH = C:/PROGRA~1/Java
>>> BUILD_JDK_IMPORT_PATH = J:/re/jdk/1.7.0/promoted/latest/binaries
>>>   ALT_BUILD_JDK_IMPORT_PATH =
>>> JDK_IMPORT_PATH = J:/re/jdk/1.7.0/promoted/latest/binaries/windows-
>>> amd64
>>>   ALT_JDK_IMPORT_PATH =
>>
>> If you use a jdk7 as ALT_BOOTDIR, you could have ALT_JDK_IMPORT_PATH
>> point at the same jdk.
>> But ALT_JDK_IMPORT_PATH must be a recent jdk7 build.
>> This is used for partial builds, where you skip building hotspot, or
>> just build the jdk7/jdk repo.
>>
>>> LANGTOOLS_DIST =
>>>   ALT_LANGTOOLS_DIST =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/langtools/dist
>>> CORBA_DIST =
>>>   ALT_CORBA_DIST =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/corba/dist
>>> JAXP_DIST =
>>>   ALT_JAXP_DIST =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/jaxp/dist
>>> JAXWS_DIST =
>>>   ALT_JAXWS_DIST =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/jaxws/dist
>>> HOTSPOT_DOCS_IMPORT_PATH = /NO_DOCS_DIR
>>>   ALT_HOTSPOT_DOCS_IMPORT_PATH =
>>> HOTSPOT_IMPORT_PATH =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/WINDOW~1/hotspot/import
>>>   ALT_HOTSPOT_IMPORT_PATH =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/hotspot/import
>>> HOTSPOT_SERVER_PATH =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/WINDOW~1/hotspot/import/jre/
>>> bin/server
>>>   ALT_HOTSPOT_SERVER_PATH =
>>> HOTSPOT_LIB_PATH =
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/WINDOW~1/hotspot/import/lib
>>>   ALT_HOTSPOT_LIB_PATH =
>>> DXSDK_VER = 0x0900
>>> DXSDK_PATH = C:/PROGRA~2/MICROS~1.0SD
>>>   ALT_DXSDK_PATH =
>>> DXSDK_INCLUDE_PATH = C:/PROGRA~2/MICROS~1.0SD/Include
>>>   ALT_DXSDK_INCLUDE_PATH =
>>> DXSDK_LIB_PATH = C:/PROGRA~2/MICROS~1.0SD/Lib/x64
>>>   ALT_DXSDK_LIB_PATH =
>>> CACERTS_FILE = ./../src/share/lib/security/cacerts
>>>   ALT_CACERTS_FILE =
>>>
>>> OpenJDK-specific settings:
>>> FREETYPE_HEADERS_PATH = /usr/include
>>>   ALT_FREETYPE_HEADERS_PATH =
>>> FREETYPE_LIB_PATH = /usr/lib
>>>   ALT_FREETYPE_LIB_PATH =
>>
>> I don't think the above freetype will work. See my freetype comments
>> above.
>>
>>>
>>> OPENJDK Import Binary Plug Settings:
>>> IMPORT_BINARY_PLUGS =
>>> BINARY_PLUGS_JARFILE =
>>> J:/re/jdk/1.7.0/promoted/latest/openjdk/binaryplugs/windows-amd64/
>>> jre/lib/rt-closed.jar
>>>   ALT_BINARY_PLUGS_JARFILE =
>>> BINARY_PLUGS_PATH =
>>> J:/re/jdk/1.7.0/promoted/latest/openjdk/binaryplugs/windows-amd64
>>>   ALT_BINARY_PLUGS_PATH =
>>> BUILD_BINARY_PLUGS_PATH =
>>> J:/re/jdk/1.7.0/promoted/latest/openjdk/binaryplugs
>>>   ALT_BUILD_BINARY_PLUGS_PATH =
>>> PLUG_LIBRARY_NAMES =
>>
>> If I were you, I would explicitly set IMPORT_BINARY_PLUGS=false this
>> may be the default now, not sure.
>>
>>>
>>> Previous JDK Settings:
>>> PREVIOUS_RELEASE_PATH =
>>>   ALT_PREVIOUS_RELEASE_PATH =
>>> PREVIOUS_JDK_VERSION = 1.6.0
>>>   ALT_PREVIOUS_JDK_VERSION =
>>> PREVIOUS_JDK_FILE =
>>>   ALT_PREVIOUS_JDK_FILE =
>>> PREVIOUS_JRE_FILE =
>>>   ALT_PREVIOUS_JRE_FILE =
>>> PREVIOUS_RELEASE_IMAGE =
>>>   ALT_PREVIOUS_RELEASE_IMAGE =
>>>
>>>
>>> WARNING: The version of ant being used is older than
>>>      the required version of '1.6.3'.
>>>      The version of ant found was ''.
>>>
>>> ERROR: You do not have access to msvcr100.dll.
>>>      Please check your access to
>>>
>>>      and/or check your value of ALT_MSVCRNN_DLL_PATH.
>>
>> Somewhere, perhaps in the Microsoft SDKs, the makefiles are looking
>> for a copy of this dll so
>> it can copy it into the built jdk image.
>> This might indicate that you did not install the latest Microsoft  
>> SDK?
>> Or the makefiles are having
>> problems finding it.
>> I would search your C:/ drive for a msvcr100.dll file, maybe in a
>> "redist" directory, and see
>> if you can set ALT_MSVCRNN_DLL_PATH. But make sure it is an Intel64  
>> or
>> amd64 dll, not a
>> 32bit one.
>>
>>>
>>> ERROR: Your JAVA_HOME environment variable is set.  This will
>>>      most likely cause the build to fail.  Please unset it
>>>      and start your build again.
>>
>> Never leave JAVA_HOME set in your environment, just 'unset  
>> JAVA_HOME',
>> it's a dangerous
>> thing to set when building a jdk, so we just disallow it.
>>
>>>
>>> ERROR: FreeType version  2.3.0  or higher is required.
>>> make[2]: Entering directory
>>> `/cygdrive/c/users/gili/Documents/jdk7/jdk7/jdk/make/tools/
>>> freetypecheck'
>>> /usr/bin/mkdir -p
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/btbins
>>> rm -f
>>> C:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/btbins/
>>> freetype_versioncheck.exe
>>> C:/PROGRA~2/MICROS~2.0/Common7/Tools/../../Vc/bin/amd64/cl / 
>>> nologo /c
>>> -I/usr/include -I/usr/include/freetype2 -
>>> DREQUIRED_FREETYPE_VERSION=2.3.0
>>> -FoC:/users/gili/DOCUME~1/jdk7/jdk7/build/windows-amd64/btbins/
>>> freetype_versioncheck.obj
>>> freetypecheck.c
>>> freetypecheck.c
>>> freetypecheck.c(29) : fatal error C1083: Cannot open include file:
>>> 'stdio.h': No such file or directory
>>
>> Yeah. It's trying to build a freetype check program with VS2010, and
>> probably found a stdio.h
>> from the CYGWIN /usr/include, not the stdio.h you want.
>> The problem is that you need the freetype include files which are
>> mixed in with the CYGWIN
>> C/C++ gcc include files. But even if you managed this, the dll used I
>> don't think is right anyway.
>> You need a dll built with Visual Studio 2010 compilers, which means
>> downloading freetype
>> sources and building it, and saving those files. Yes, I know,  
>> painful.
>> Sorry in advance. ;^(
>>
>>> make[2]: Leaving directory
>>> `/cygdrive/c/users/gili/Documents/jdk7/jdk7/jdk/make/tools/
>>> freetypecheck'
>>> Failed to build freetypecheck.
>>>
>>> Exiting because of the above error(s).
>>>
>>> make: *** [post-sanity] Error 1
>>> --------------
>>>
>>> Is there an easy way for me to figure out which file/line is causing
>>> these
>>> kinds of errors?
>>>
>>
>> Many different issues here, like I said, windows is a pain, and you
>> are in uncharted territory.
>>
>> Hope something I've provide helps.
>>
>> -kto
>>
>>> "/bin/sh: C:Program: command not found"
>>>
>>> or why Ant's version isn't being detected even though I provide the
>>> correct
>>> path...
>>>
>>> Thanks,
>>> Gili
>>> --
>>> View this message in context:
>>> http://old.nabble.com/Help-building-under-Windows7-64-bit-tp28808920p28808920.html
>>> Sent from the OpenJDK Build Infrastructure mailing list archive at
>>> Nabble.com.
>>>
>>
>>




More information about the build-dev mailing list