Hang building JDK 7 Hotspot in Windows 7 (original) (raw)
Volker Simonis volker.simonis at gmail.com
Mon Feb 11 19:36:41 UTC 2013
- Previous message (by thread): Hang building JDK 7 Hotspot in Windows 7
- Next message (by thread): building JDK6 - latest usable compiler
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sat, Feb 9, 2013 at 3:35 AM, Randy Nielsen <rnielsen at vocera.com> wrote:
Fixed!
One of our very capable Linux engineers, Suresh Rajashekarak, found a Cygwin 1.6.9 mirror at redhat: ftp://ftp.ges.redhat.com/private/releng/cygwin-1.6/ Setup is now called rhsetup.exe.
Actually he seems to be more than very capable - he seems to be a true clairvoyant:)
So it's the first time I hear about "RedHat Cygwin". I found the following page for it: http://www.redhat.com/services/custom/cygwin/ which links to ftp://ftp.ges.redhat.com/private/releng/cygwin-1.8/rhsetup.exe (named the "Red Hat Cygwin official installation utility"). Unfortunately the ftp-site is not browsable, so you have to know what you want to download.
The current release is RedHat Cygwin 1.8 which seems to be ahead of the current Cygwin 1.7.17. Has anybody tried with the newest RedHat Cygwin? Does the build still hang?
With this I successfully built JDK 1.7 Hotspot on 64 bit Windows 7.
Great to see the confirmation that it is really a problem of newer Cygwin versions.
I tried to install the RedHat Cygwin 1.6.9 from you link but unfortunately the installer crashes immediately on my Windows Server 2003 64-bit machine. So I used a vanilla Cygwin installer and entered ftp://ftp.ges.redhat.com/private/releng/cygwin-1.6 as mirror which installed successfully. Unfortunately I realized that Cygwin before 1.7 uses registry entries to locate the cygwin.dll and root mount points and I had another ancient Cygwin 1.5. so after the installation, neither of them did work any more.
Fortunately I did found a Cygwin 1.7.9 in one of my VirtualBox images. I copied it over to my Windows 2003 64-bit server and voila - the build succeeded. The good thing about Cygwin 1.7 is that is is self contained and relocatable (i.e. it doesn't need any registry entries because it finds all it's DLLs from the path of its execuatables). With this version of Cygwin 1.7.9 I've successfully build on Windows XP 64-bit, Windows Server 2003 64-bit and Windows 7 64-bit (although I had to disable "on access virus scanning" and "ASLR (Address Space Layout Randomization)" - see http://mail.openjdk.java.net/pipermail/build-dev/2012-February/005594.html).
So to cut a long story short - it seems you need Cygwin <= 1.7.9 in order to build on Windows.
It would be really nice if this could be hosted somewhere on java.net (after all it's GPL like OpenJDK :) and mentioned in the README.
I had one more problem building Hotspot. My Windows PATH had the vc/bin/amdx64 and vc/bin/x64 in the wrong order. The vc/bin/amd64 entry must be before the vc/bin/x86amd. In Cygwin typing "cl" in with the path in the correct order produces something like this:
$ cl Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for x64 Copyright (C) Microsoft Corporation. All rights reserved. usage: cl [ option... ] filename... [ /link linkoption... ] Whereas with the order flipped typing "cl" produces no output. Randy -----Original Message----- From: Volker Simonis [mailto:volker.simonis at gmail.com] Sent: Friday, February 08, 2013 10:45 AM To: Tim Bell Cc: Randy Nielsen; build-dev at openjdk.java.net; Suresh Rajashekara; Suresh at sca-git1.sun.com Subject: Re: Hang building JDK 7 Hotspot in Windows 7 Sorry to say this, but I think this is a problem of new Cygwin versions. I've just tried with the newest 1.7.17 (see "uname -r") under Windows Server 2003 and it hangs as well. I really think that all has been already said about this topic, see: http://openjdk.5641.n7.nabble.com/Is-anyone-able-to-build-on-Win-7-td81697.html#a33196055 http://weblogs.java.net/blog/simonis/archive/2011/10/28/yaojowbi-yet-another-openjdk-windows-build-instruction If nobody will be able to provide a complete Cygwin version 1.7.9 or older (actually, that's my best guess:) I think we will be out of luck. I've tried the whole afternoon to download such a version without success. If somebody else succeeds, PLEASE, PLEASE make it available somewhere for download otherwise I don't see how anybody else will ever be able to build OpenJDK 7 on Windows except on machines which have been set up years ago. The only alternatives are: - use MKS ($$$$) - use the new build system (currently only for JDK8) - use MinGW/MSYS (not sure what the current status of MinGW/MSYS support is in JDK7 because I've submitted these changes about a year ago. I think most of them have been integrated, but mostly to the jdk8 repositories (see http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html which contains some hints for MinGW/MSYS builds). As far as I can see they are not in the jdk7 README (http://hg.openjdk.java.net/jdk7u/jdk7u/raw-file/tip/README-builds.html) so the build file changes may still have to be back-ported ) . Regards, Volker On Fri, Feb 8, 2013 at 4:08 PM, Tim Bell <tim.bell at oracle.com> wrote: For the hotspot build, 'gmake MAKEVERBOSE=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-bu ilds.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/MICROS2.0/Common7/Tools/../../Vc/bin/amd64/link: Function not implemented jdk/make/common/shared/Compiler-msvc.gmk:80: *** COMPILERVERSION cannot be empty here. Stop. Being a suspicious soul I then tried this: $ strace make sanity>trace.txt /bin/sh: C:/PROGRA2/MICROS2.0/Common7/Tools/../../Vc/bin/amd64/link: Function not implemented jdk/make/common/shared/Compiler-msvc.gmk:80: *** COMPILERVERSION 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) allproduct ##### ################################################################### ### ## _cd ./hotspot/make&& _ make JDKTOPDIR=C:/OpenJDK/openjdk/jdk JDKMAKESHAREDDIR=C:/OpenJDK/openjdk/jdk/make/common/shared EXTERNALSANITYCONTROL=true SOURCELANGUAGEVERSION=7 TARGETCLASSVERSION=7 MILESTONE=internal BUILDNUMBER=b00 JDKBUILDNUMBER=b00 FULLVERSION=1.7.0-internal-administrator201302062332-b00 PREVIOUSJDKVERSION=1.6.0 JDKVERSION=1.7.0 JDKMKTGVERSION=7 JDKMAJORVERSION=1 JDKMINORVERSION=7 JDKMICROVERSION=0 PREVIOUSMAJORVERSION=1 PREVIOUSMINORVERSION=6 PREVIOUSMICROVERSION=0 ARCHDATAMODEL=64 COOKEDBUILDNUMBER=0 ANTHOME="c:/OpenJDK/apache-ant-1.7.1" ALTOUTPUTDIR=C:/OpenJDK/openjdk/build/windows-amd64/hotspot/output dir ALTEXPORTPATH=C:/OpenJDK/openjdk/build/windows-amd64/hotspot/impo rt ALTSLASHJAVA="c:/OpenJDK" ALTBOOTDIR=c:/OpenJDK/jdk-6u18 ALTLANGTOOLSDIST=C:/OpenJDK/openjdk/build/windows-amd64/langtools /di st allproduct ==>> 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 HOTSPOTIMPORTCHECK=false JDKTOPDIR=C:/OpenJDK/openjdk/jdk JDKMAKESHAREDDIR=C:/OpenJDK/openjdk/jdk/make/common/shared EXTERNALSANITYCONTROL=true SOURCELANGUAGEVERSION=7 TARGETCLASSVERSION=7 MILESTONE=internal BUILDNUMBER=b00 JDKBUILDNUMBER=b00 FULLVERSION=1.7.0-internal-administrator201302062332-b00 PREVIOUSJDKVERSION=1.6.0 JDKVERSION=1.7.0 JDKMKTGVERSION=7 JDKMAJORVERSION=1 JDKMINORVERSION=7 JDKMICROVERSION=0 PREVIOUSMAJORVERSION=1 PREVIOUSMINORVERSION=6 PREVIOUSMICROVERSION=0 ARCHDATAMODEL=64 COOKEDBUILDNUMBER=0 ANTHOME="c:/OpenJDK/apache-ant-1.7.1" ALTOUTPUTDIR=C:/OpenJDK/openjdk/build/windows-amd64 ALTLANGTOOLSDIST=C:/OpenJDK/openjdk/build/windows-amd64/langtools /di st ALTCORBADIST=C:/OpenJDK/openjdk/build/windows-amd64/corba/dist ALTJAXPDIST=C:/OpenJDK/openjdk/build/windows-amd64/jaxp/dist ALTJAXWSDIST=C:/OpenJDK/openjdk/build/windows-amd64/jaxws/dist ALTHOTSPOTIMPORTPATH=C:/OpenJDK/openjdk/build/windows-amd64/hots pot /import BUILDHOTSPOT=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 = . LANGTOOLSTOPDIR = ./langtools JAXPTOPDIR = ./jaxp JAXWSTOPDIR = ./jaxws CORBATOPDIR = ./corba HOTSPOTTOPDIR = ./hotspot JDKTOPDIR = ./jdk Build Directives: BUILDLANGTOOLS = true BUILDJAXP = true BUILDJAXWS = true BUILDCORBA = true BUILDHOTSPOT = true BUILDJDK = true DEBUGCLASSFILES = DEBUGBINARIES = Hotspot Settings: HOTSPOTBUILDJOBS = HOTSPOTOUTPUTDIR = C:/OpenJDK/openjdk/build/windows-amd64/hotspot/outputdir HOTSPOTEXPORTPATH = C:/OpenJDK/openjdk/build/windows-amd64/hotspot/importBootstrap Settings: BOOTDIR = c:/OpenJDK/jdk-6u18 ALTBOOTDIR = c:/OpenJDK/jdk-6u18 BOOTVER = 1.6.0 [requires at least 1.6] OUTPUTDIR = C:/OpenJDK/openjdk/build/windows-amd64 ALTOUTPUTDIR = C:/OpenJDK/openjdk/build/windows-amd64 ABSOUTPUTDIR = C:/OpenJDK/openjdk/build/windows-amd64 Build Tool Settings: SLASHJAVA = c:/OpenJDK ALTSLASHJAVA = c:/OpenJDK VARIANT = OPT JDKDEVTOOLSDIR = c:/OpenJDK/devtools ALTJDKDEVTOOLSDIR = ANTHOME = c:/OpenJDK/apache-ant-1.7.1 UNIXCOMMANDPATH = /usr/bin/ ALTUNIXCOMMANDPATH = COMPILERPATH = C:/PROGRA
2/MICROS2.0/Common7/Tools/../../Vc/bin/amd64/ ALTCOMPILERPATH = DEVTOOLSPATH = /usr/bin/ ALTDEVTOOLSPATH = MSVCRNNDLLPATH = C:/PROGRA2/MICROS2.0/Vc/redist/x64/Microsoft.VC100.CRT ALTMSVCRNNDLLPATH = INCLUDE = C:/PROGRA2/MICROS2.0/VC/include;C:/MSSDKWIN7/Windows/v7.1/Include LIB = C:/PROGRA2/MICROS2.0/VC/lib/amd64;C:/MSSDKWIN7/Windows/v7.1/Lib/x64 COMPILERNAME = Microsoft Visual Studio 10 (16.00.30319.01) COMPILERVERSION = VS2010 CCVER = 16.00.40219.01 [requires at least 16.00.30319.01] ZIPVER = 3.0 [requires at least 2.2] UNZIPVER = 6.00 [requires at least 5.12] LINKVER = 10.00.40219.01 [requires at least 10.00.30319.01] CC = C:/PROGRA2/MICROS2.0/Common7/Tools/../../Vc/bin/amd64/cl LINK = C:/PROGRA2/MICROS2.0/Common7/Tools/../../Vc/bin/amd64/link DUMPBIN = C:/PROGRA2/MICROS2.0/Common7/Tools/../../Vc/bin/amd64/dumpbin.exe ANTVER = 1.7.1 [requires at least 1.7.1] TEMPDIR = C:/OpenJDK/openjdk/build/windows-amd64/tmp Build Directives: OPENJDK = true USEHOTSPOTINTERPRETERMODE = PEDANTIC = DEVONLY = NODOCS = NOIMAGES = TOOLSONLY = INSANE = COMPILEAPPROACH = normal FASTDEBUG = COMPILERWARNINGSFATAL = false COMPILERWARNINGLEVEL = 3 SHOWALLWARNINGS = false INCREMENTALBUILD = false CCHIGHESTOPT = CCHIGHEROPT = CCLOWEROPT = CXXFLAGS = -O1 -Zi -nologo -MD /D STATICCPPLIB /D DISABLEDEPRECATESTATICCPPLIB -Zc:wchart- -FdC:/OpenJDK/openjdk/build/windows-amd64/tmp/obj64/.pdb -FmC:/OpenJDK/openjdk/build/windows-amd64/tmp/obj64/.map -wd4800 -W3 -D CRTSECURENODEPRECATE -D CRTNONSTDCNODEPRECATE CFLAGS = -O1 -Zi -nologo -MD /D STATICCPPLIB /D DISABLEDEPRECATESTATICCPPLIB -Zc:wchart- -FdC:/OpenJDK/openjdk/build/windows-amd64/tmp/obj64/.pdb -FmC:/OpenJDK/openjdk/build/windows-amd64/tmp/obj64/.map -wd4800 -W3 -D CRTSECURENODEPRECATE -D CRTNONSTDCNODEPRECATE BOOTJAVACMD = c:/OpenJDK/jdk-6u18/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m BOOTJAVACCMD = 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 BOOTJARCMD = c:/OpenJDK/jdk-6u18/bin/jar BOOTJARSIGNERCMD = c:/OpenJDK/jdk-6u18/bin/jarsigner Build Platform Settings: USER = Administrator PLATFORM = windows ARCH = amd64 LIBARCH = amd64 ARCHFAMILY = amd64 ARCHDATAMODEL = 64 ARCHPROP = amd64 PROCESSORARCHITECTURE = x86 PROCESSORIDENTIFIER = Intel64 Family 6 Model 26 Stepping 5, GenuineIntel USINGCYGWIN = true CYGWINVER = 6.1 [requires at least 4.0] CYGPATHCMD = cygpath -a -s -m OSVERSION = 6.1 [requires at least 5.2] OSVARIANTNAME = OSVARIANTVERSION = 6.1 MBOFMEMORY = 8191 GNU Make Settings: MAKE = make MAKEVER = 3.82 [requires at least 3.81] MAKECMDGOALS = sanity MAKEFLAGS = w SHELL = /bin/sh Target Build Versions: JDKVERSION = 1.7.0 MILESTONE = internal RELEASE = 1.7.0-internal FULLVERSION = 1.7.0-internal-administrator201302062332-b00 BUILDNUMBER = b00 External File/Binary Locations: USRJDKINSTANCESPATH = C:/PROGRA~1/Java BUILDJDKIMPORTPATH = c:/OpenJDK/re/jdk/1.7.0/promoted/latest/binaries ALTBUILDJDKIMPORTPATH = JDKIMPORTPATH = c:/OpenJDK/re/jdk/1.7.0/promoted/latest/binaries/windows-amd64 ALTJDKIMPORTPATH = LANGTOOLSDIST = C:/OpenJDK/openjdk/build/windows-amd64/langtools/dist ALTLANGTOOLSDIST = C:/OpenJDK/openjdk/build/windows-amd64/langtools/dist CORBADIST = C:/OpenJDK/openjdk/build/windows-amd64/corba/dist ALTCORBADIST = C:/OpenJDK/openjdk/build/windows-amd64/corba/dist JAXPDIST = C:/OpenJDK/openjdk/build/windows-amd64/jaxp/dist ALTJAXPDIST = C:/OpenJDK/openjdk/build/windows-amd64/jaxp/dist JAXWSDIST = C:/OpenJDK/openjdk/build/windows-amd64/jaxws/dist ALTJAXWSDIST = C:/OpenJDK/openjdk/build/windows-amd64/jaxws/dist HOTSPOTDOCSIMPORTPATH = /NODOCSDIR ALTHOTSPOTDOCSIMPORTPATH = HOTSPOTIMPORTPATH = C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import ALTHOTSPOTIMPORTPATH = C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import HOTSPOTSERVERPATH = C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import/jre/bin/server ALTHOTSPOTSERVERPATH = HOTSPOTLIBPATH = C:/OpenJDK/openjdk/build/windows-amd64/hotspot/import/lib ALTHOTSPOTLIBPATH = DXSDKVER = 0x0900 DXSDKPATH = C:/PROGRA2/MI4ADD1 ALTDXSDKPATH = C:/PROGRA2/MI4ADD1 DXSDKINCLUDEPATH = C:/PROGRA2/MI4ADD1/Include ALTDXSDKINCLUDEPATH = DXSDKLIBPATH = C:/PROGRA2/MI4ADD1/Lib/x64 ALTDXSDKLIBPATH = WINDOWSSDKDIR = C:/PROGRA2/MICROS1/Windows/v7.0a/ ALTWINDOWSSDKDIR = RC = C:/PROGRA2/MICROS1/Windows/v7.0a//Bin/x64/RC.Exe REBASE = C:/PROGRA2/MICROS1/Windows/v7.0a//Bin/x64/ReBase.Exe CACERTSFILE = ./../src/share/lib/security/cacerts ALTCACERTSFILE = OpenJDK-specific settings: FREETYPEHEADERSPATH = C:/OpenJDK/freetype-2.4.11/include ALTFREETYPEHEADERSPATH = C:/OpenJDK/freetype-2.4.11/include FREETYPELIBPATH = C:/OpenJDK/freetype-2.4.11 ALTFREETYPELIBPATH = C:/OpenJDK/freetype-2.4.11 Previous JDK Settings: PREVIOUSRELEASEPATH = USING-PREVIOUSRELEASEIMAGE ALTPREVIOUSRELEASEPATH = PREVIOUSJDKVERSION = 1.6.0 ALTPREVIOUSJDKVERSION = PREVIOUSJDKFILE = ALTPREVIOUSJDKFILE = PREVIOUSJREFILE = ALTPREVIOUSJREFILE = PREVIOUSRELEASEIMAGE = c:/OpenJDK/jdk-6u18 ALTPREVIOUSRELEASEIMAGE = 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 _ _SKIPFASTDEBUGBUILD=true _ _SKIPDEBUGBUILD=true _ __ genericbuildreposeries 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 ==
- Previous message (by thread): Hang building JDK 7 Hotspot in Windows 7
- Next message (by thread): building JDK6 - latest usable compiler
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]