Hang building JDK 7 Hotspot in Windows 7

Tim Bell tim.bell at oracle.com
Fri Feb 8 15:08:20 UTC 2013


For the hotspot build, 'gmake MAKE_VERBOSE=y' or 'gmake QUIETLY=' gives 
more details.

You need 'nmake' on your PATH when building in hotspot.

Also, verify that the VS2010 'link' is on PATH _before_ the Cygwin link.exe.

http://hg.openjdk.java.net/jdk7u/jdk7u/raw-file/7ffd73535b8e/README-builds.html#msvc32


Hope this helps-

Tim

On 02/07/13 23:43, Erik Joelsson wrote:
> The LOG=debug is JDK8 and build-infra specific. For JDK7 I don't know 
> of a way to get more info except adding the -d or --debug flag to 
> make, which as David says is rather useless most of the time.
>
> /Erik
>
> On 2013-02-08 00:47, Randy Nielsen wrote:
>> 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