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 Filespache-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.


Reply via email to