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