Hang building JDK 7 Hotspot in Windows 7

Randy Nielsen rnielsen at vocera.com
Thu Feb 7 23:47:28 UTC 2013


Tried suggestions with no change.  Specifically LOG=debug,nofile didn't add any output at all.  Are there any others ways to poke the make to get more output, say a line by line trace of the make behavior?  This feels like a process synchronization problem where process A is waiting to be notified by someone and of course the notify never occurs.  But why would a bunch of compiles etc. use this kind of synchronization? 

Also I tried strace to peek under the covers, and concluded that Cygwin strace is very buggy.  Details (optional) follow, after my signature.

Randy

I ran strace on top of the make of hotspot and to my utter astonishment after a few seconds it ended like this:

	$ strace make hotspot >strace.txt
	/bin/sh: C:/PROGRA~2/MICROS~2.0/Common7/Tools/../../Vc/bin/amd64/link: Function not implemented
	jdk/make/common/shared/Compiler-msvc.gmk:80: *** COMPILER_VERSION cannot be empty here.  Stop.

Being a suspicious soul I then tried this:
 
	$ strace make sanity >trace.txt
	/bin/sh: C:/PROGRA~2/MICROS~2.0/Common7/Tools/../../Vc/bin/amd64/link: Function not implemented
	jdk/make/common/shared/Compiler-msvc.gmk:80: *** COMPILER_VERSION cannot be empty here.  Stop.

Of course the "make sanity" without strace works perfectly.  Conclusion: the Cygwin strace is buggy (big surprise) and can't be used to help peer "under the covers" of the hotspot make.


-----Original Message-----
From: Kelly Ohair [mailto:kelly.ohair at oracle.com] 
Sent: Thursday, February 07, 2013 8:36 AM
To: Randy Nielsen
Cc: build-dev at openjdk.java.net
Subject: Re: Hang building JDK 7 Hotspot in Windows 7

no definite answers just ideas

we are starting to use windows 2008R2 which seems better make sure the env vars TMP and TEMP are set to directories windows understands eg C:/ paths and these directories exist and have write permissions try using make LOG=debug,nofile


Sent from my iPhone

On Feb 6, 2013, at 23:59, Randy Nielsen <rnielsen at vocera.com> wrote:

> I am thoroughly stuck building JDK 7 when I start the Hotspot portion of the build.  This is Windows 7 64 bit building 64 bit JDK with Visual Studio 10 Service Pack 1.  The hang seems to happen immediately after I start the hotspot portion of the make.  There is no output at all.  Watching the Windows Task Manager in the Processes tab shows the System Idle process at 99% almost all of the time.  Occasionally mscorsvw.exe (.NET services) or minty.exe gets a few % of CPU but only very briefly.
> 
>> From browsing the web I've tried the following "fixes": verified that there was no anti-virus program, and disabled ASLR (Address Space Layout Randomization).  No change in behavior.
> 
> Has anyone any ideas about how to deal with this?  Also are there settings in the make that will dramatically increase the level of logging in the make that might help me debug this?
> 
> Here's the output of the make hotspot:
> 
> /usr/bin/mkdir -p 
> C:/OpenJDK/openjdk/build/windows-amd64/hotspot/outputdir
> /usr/bin/mkdir -p 
> C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import
> 
> 
> ######################################################################
> ## 
> ########################################################################
> ##### Entering hotspot for target(s) all_product                   #####
> ######################################################################
> ##
> 
> cd  ./hotspot/make && \
>    make JDK_TOPDIR=C:/OpenJDK/openjdk/jdk 
> JDK_MAKE_SHARED_DIR=C:/OpenJDK/openjdk/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-administrator_2013_02_06_23_32-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:/OpenJDK/apache-ant-1.7.1" 
> ALT_OUTPUTDIR=C:/OpenJDK/openjdk/build/windows-amd64/hotspot/outputdir 
> ALT_EXPORT_PATH=C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import 
> ALT_SLASH_JAVA="c:/OpenJDK" ALT_BOOTDIR=c:/OpenJDK/jdk-6u18 
> ALT_LANGTOOLS_DIST=C:/OpenJDK/openjdk/build/windows-amd64/langtools/di
> st all_product
> 
> ==>> That's it - no more output.
> 
> The output of the sanity portion of the make is below.
> 
> Hoping someone can help!
> 
> Randy
> 
> $ make
> cygwin warning:
>  MS-DOS style path detected: C:/Windows/system32/wscript.exe  
> Preferred POSIX equivalent is: 
> /cygdrive/c/Windows/system32/wscript.exe
>  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
>  Consult the user's guide for more details about POSIX paths:
>    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
> ( cd  ./jdk/make && \
>  make sanity HOTSPOT_IMPORT_CHECK=false 
> JDK_TOPDIR=C:/OpenJDK/openjdk/jdk 
> JDK_MAKE_SHARED_DIR=C:/OpenJDK/openjdk/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-administrator_2013_02_06_23_32-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:/OpenJDK/apache-ant-1.7.1" 
> ALT_OUTPUTDIR=C:/OpenJDK/openjdk/build/windows-amd64 
> ALT_LANGTOOLS_DIST=C:/OpenJDK/openjdk/build/windows-amd64/langtools/di
> st ALT_CORBA_DIST=C:/OpenJDK/openjdk/build/windows-amd64/corba/dist 
> ALT_JAXP_DIST=C:/OpenJDK/openjdk/build/windows-amd64/jaxp/dist 
> ALT_JAXWS_DIST=C:/OpenJDK/openjdk/build/windows-amd64/jaxws/dist 
> ALT_HOTSPOT_IMPORT_PATH=C:/OpenJDK/openjdk/build/windows-amd64/hotspot
> /import BUILD_HOTSPOT=true ; )
> make[1]: Entering directory `/cygdrive/c/OpenJDK/openjdk/jdk/make'
> make[1]: Leaving directory `/cygdrive/c/OpenJDK/openjdk/jdk/make'
> 
> Build Machine Information:
>   build machine = WIN-R7HSHTAIIHC
> 
> Build Directory Structure:
>   CWD = /cygdrive/c/OpenJDK/openjdk
>   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:/OpenJDK/openjdk/build/windows-amd64/hotspot/outputdir
>      HOTSPOT_EXPORT_PATH = 
> C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import
> 
> 
> 
> 
> Bootstrap Settings:
>  BOOTDIR = c:/OpenJDK/jdk-6u18
>    ALT_BOOTDIR = c:/OpenJDK/jdk-6u18
>  BOOT_VER = 1.6.0 [requires at least 1.6]  OUTPUTDIR = 
> C:/OpenJDK/openjdk/build/windows-amd64
>    ALT_OUTPUTDIR = C:/OpenJDK/openjdk/build/windows-amd64
>  ABS_OUTPUTDIR = C:/OpenJDK/openjdk/build/windows-amd64
> 
> Build Tool Settings:
>  SLASH_JAVA = c:/OpenJDK
>    ALT_SLASH_JAVA = c:/OpenJDK
>  VARIANT = OPT
>  JDK_DEVTOOLS_DIR = c:/OpenJDK/devtools
>    ALT_JDK_DEVTOOLS_DIR =
>  ANT_HOME = c:/OpenJDK/apache-ant-1.7.1  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 =
>  MSVCRNN_DLL_PATH = C:/PROGRA~2/MICROS~2.0/Vc/redist/x64/Microsoft.VC100.CRT
>    ALT_MSVCRNN_DLL_PATH =
>  INCLUDE = 
> C:/PROGRA~2/MICROS~2.0/VC/include;C:/MSSDKWIN7/Windows/v7.1/Include
>  LIB = 
> C:/PROGRA~2/MICROS~2.0/VC/lib/amd64;C:/MSSDKWIN7/Windows/v7.1/Lib/x64
>  COMPILER_NAME = Microsoft Visual Studio 10 (16.00.30319.01)  
> COMPILER_VERSION = VS2010  CC_VER = 16.00.40219.01 [requires at least 
> 16.00.30319.01]  ZIP_VER = 3.0 [requires at least 2.2]  UNZIP_VER = 
> 6.00 [requires at least 5.12]  LINK_VER = 10.00.40219.01 [requires at 
> least 10.00.30319.01]  CC = 
> C:/PROGRA~2/MICROS~2.0/Common7/Tools/../../Vc/bin/amd64/cl
>  LINK = C:/PROGRA~2/MICROS~2.0/Common7/Tools/../../Vc/bin/amd64/link
>  DUMPBIN = 
> C:/PROGRA~2/MICROS~2.0/Common7/Tools/../../Vc/bin/amd64/dumpbin.exe
>  ANT_VER = 1.7.1 [requires at least 1.7.1]  TEMPDIR = 
> C:/OpenJDK/openjdk/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
>  SHOW_ALL_WARNINGS = false
>  INCREMENTAL_BUILD = false
>  CC_HIGHEST_OPT =
>  CC_HIGHER_OPT =
>  CC_LOWER_OPT =
>  CXXFLAGS =  -O1 -Zi -nologo -MD /D _STATIC_CPPLIB /D _DISABLE_DEPRECATE_STATIC_CPPLIB -Zc:wchar_t- -FdC:/OpenJDK/openjdk/build/windows-amd64/tmp/obj64/.pdb -FmC:/OpenJDK/openjdk/build/windows-amd64/tmp/obj64/.map -wd4800 -W3 -D _CRT_SECURE_NO_DEPRECATE -D _CRT_NONSTDC_NO_DEPRECATE
>  CFLAGS =  -O1   -Zi -nologo -MD /D _STATIC_CPPLIB /D _DISABLE_DEPRECATE_STATIC_CPPLIB -Zc:wchar_t- -FdC:/OpenJDK/openjdk/build/windows-amd64/tmp/obj64/.pdb -FmC:/OpenJDK/openjdk/build/windows-amd64/tmp/obj64/.map -wd4800 -W3 -D _CRT_SECURE_NO_DEPRECATE -D _CRT_NONSTDC_NO_DEPRECATE
>  BOOT_JAVA_CMD = c:/OpenJDK/jdk-6u18/bin/java -XX:-PrintVMOptions 
> -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m 
> -XX:PermSize=32m -XX:MaxPermSize=160m  BOOT_JAVAC_CMD = 
> c:/OpenJDK/jdk-6u18/bin/javac  -J-XX:ThreadStackSize=1536 
> -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions 
> -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m 
> -J-XX:MaxPermSize=160m -encoding ascii -source 6 -target 6 
> -XDignore.symbol.file=true  BOOT_JAR_CMD = c:/OpenJDK/jdk-6u18/bin/jar  
> BOOT_JARSIGNER_CMD = c:/OpenJDK/jdk-6u18/bin/jarsigner
> 
> Build Platform Settings:
>  USER = Administrator
>  PLATFORM = windows
>  ARCH = amd64
>  LIBARCH = amd64
>  ARCH_FAMILY = amd64
>  ARCH_DATA_MODEL = 64
>  ARCHPROP = amd64
>  PROCESSOR_ARCHITECTURE = x86
>  PROCESSOR_IDENTIFIER = Intel64 Family 6 Model 26 Stepping 5, 
> 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  MB_OF_MEMORY 
> = 8191
> 
> GNU Make Settings:
>  MAKE = make
>  MAKE_VER = 3.82 [requires at least 3.81]  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-administrator_2013_02_06_23_32-b00
>  BUILD_NUMBER = b00
> 
> External File/Binary Locations:
>  USRJDKINSTANCES_PATH = C:/PROGRA~1/Java  BUILD_JDK_IMPORT_PATH = 
> c:/OpenJDK/re/jdk/1.7.0/promoted/latest/binaries
>    ALT_BUILD_JDK_IMPORT_PATH =
>  JDK_IMPORT_PATH = c:/OpenJDK/re/jdk/1.7.0/promoted/latest/binaries/windows-amd64
>    ALT_JDK_IMPORT_PATH =
>  LANGTOOLS_DIST = C:/OpenJDK/openjdk/build/windows-amd64/langtools/dist
>    ALT_LANGTOOLS_DIST = 
> C:/OpenJDK/openjdk/build/windows-amd64/langtools/dist
>  CORBA_DIST = C:/OpenJDK/openjdk/build/windows-amd64/corba/dist
>    ALT_CORBA_DIST = C:/OpenJDK/openjdk/build/windows-amd64/corba/dist
>  JAXP_DIST = C:/OpenJDK/openjdk/build/windows-amd64/jaxp/dist
>    ALT_JAXP_DIST = C:/OpenJDK/openjdk/build/windows-amd64/jaxp/dist
>  JAXWS_DIST = C:/OpenJDK/openjdk/build/windows-amd64/jaxws/dist
>    ALT_JAXWS_DIST = C:/OpenJDK/openjdk/build/windows-amd64/jaxws/dist
>  HOTSPOT_DOCS_IMPORT_PATH = /NO_DOCS_DIR
>    ALT_HOTSPOT_DOCS_IMPORT_PATH =
>  HOTSPOT_IMPORT_PATH = C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import
>    ALT_HOTSPOT_IMPORT_PATH = 
> C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import
>  HOTSPOT_SERVER_PATH = C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import/jre/bin/server
>    ALT_HOTSPOT_SERVER_PATH =
>  HOTSPOT_LIB_PATH = C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import/lib
>    ALT_HOTSPOT_LIB_PATH =
>  DXSDK_VER = 0x0900
>  DXSDK_PATH = C:/PROGRA~2/MI4ADD~1
>    ALT_DXSDK_PATH = C:/PROGRA~2/MI4ADD~1  DXSDK_INCLUDE_PATH = 
> C:/PROGRA~2/MI4ADD~1/Include
>    ALT_DXSDK_INCLUDE_PATH =
>  DXSDK_LIB_PATH = C:/PROGRA~2/MI4ADD~1/Lib/x64
>    ALT_DXSDK_LIB_PATH =
>  WINDOWSSDKDIR = C:/PROGRA~2/MICROS~1/Windows/v7.0a/
>    ALT_WINDOWSSDKDIR =
>  RC = C:/PROGRA~2/MICROS~1/Windows/v7.0a//Bin/x64/RC.Exe
>  REBASE = C:/PROGRA~2/MICROS~1/Windows/v7.0a//Bin/x64/ReBase.Exe
>  CACERTS_FILE = ./../src/share/lib/security/cacerts
>    ALT_CACERTS_FILE =
> 
> OpenJDK-specific settings:
>  FREETYPE_HEADERS_PATH = C:/OpenJDK/freetype-2.4.11/include
>    ALT_FREETYPE_HEADERS_PATH = C:/OpenJDK/freetype-2.4.11/include
>  FREETYPE_LIB_PATH = C:/OpenJDK/freetype-2.4.11
>    ALT_FREETYPE_LIB_PATH = C:/OpenJDK/freetype-2.4.11
> 
> Previous JDK Settings:
>  PREVIOUS_RELEASE_PATH = USING-PREVIOUS_RELEASE_IMAGE
>    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 = c:/OpenJDK/jdk-6u18
>    ALT_PREVIOUS_RELEASE_IMAGE =
> 
> 
> WARNING: To build Java 2 SDK 1.7.0 you need :
>       VS2010 - link.exe version '10.00.30319.01'
>       Specifically the Visual Studio 10 link.exe.
>        You appear to be using Linker version '10.00.40219.01'
> 
> Sanity check passed.
> make \
>        SKIP_FASTDEBUG_BUILD=true \
>        SKIP_DEBUG_BUILD=true \
>         \
>        generic_build_repo_series
> make[1]: Entering directory `/cygdrive/c/OpenJDK/openjdk'
> /usr/bin/mkdir -p ./build/windows-amd64/j2sdk-image /usr/bin/mkdir -p 
> C:/OpenJDK/openjdk/build/windows-amd64/langtools
> 
> == End of listing of make sanity portion of build ==
> 
> 



More information about the build-dev mailing list