Building OpenJDK on Windows

Ingo Proetel proetel at aicas.com
Tue Jul 22 21:05:46 UTC 2008


It seems that this is mainly a problem in the hotspot part of the build. Other parts call link and cl with absolut 
paths. To me this looks like the right solution also for the hotspot part.
Fiddling with PATH might lead to other problems and conflicts.

Ingo

Kelly O'Hair wrote:
> Max is correct.
> 
> Normally you should put the compiler paths before /usr/bin in your PATH 
> variable.
> I'm not sure how safe it is to modify the cygwin installation.
> 
> I have bug 6724787, and I will clarify this cygwin link.exe PATH issue 
> in the
> OpenJDK Build readme soon.
> http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-builds.html
> 
> -kto
> 
> Max (Weijun) Wang wrote:
>> This is a conflict between link.exe of CYGWIN and MSVC.
>>
>> The formal process seems to suggest that you define environment 
>> variables to inform make to locate the correct find.exe (the MSVC 
>> one). I haven't tried it. I simply rename the link.exe in CYGWIN to 
>> something else.
>>
>> -Max
>>
>> On Jul 22, 2008, at 8:13 PM, Ingo Proetel wrote:
>>
>>> Thanks that helped.
>>>
>>> Until I got here:
>>>     link.exe  bufferoverflowU.lib kernel32.lib user32.lib gdi32.lib 
>>> winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib 
>>> oleaut32.lib  uuid.lib Wsock32.lib winmm.lib /nologo /machine:I386 
>>> /opt:REF  /opt:ICF,8 /map /debug /subsystem:console /out:adlc.exe 
>>> main.obj adlparse.obj archDesc.obj arena.obj dfa.obj dict2.obj 
>>> filebuff.obj forms.obj formsopt.obj formssel.obj opcodes.obj 
>>> output_c.obj output_h.obj
>>> /usr/bin/link: extra operand `user32.lib'
>>> Try `/usr/bin/link --help' for more information.
>>> NMAKE : fatal error U1077: 'C:\cygwin\bin\link.exe' : return code '0x1'
>>>
>>> Apparently the make does not use ALT_DEVTOOLS_PATH to prefix 
>>> link.exe. Is there another environment variable that I should set for 
>>> that?
>>> Or do I have to adjust the PATH variable?
>>>
>>> Ingo
>>>
>>> Max (Weijun) Wang wrote:
>>>> The file is moved to somewhere else. Please apply this patch:
>>>> diff --git a/make/windows/makefiles/defs.make 
>>>> b/make/windows/makefiles/defs.make
>>>> --- a/make/windows/makefiles/defs.make
>>>> +++ b/make/windows/makefiles/defs.make
>>>> @@ -107,7 +107,7 @@
>>>>    ABS_OUTPUTDIR   := $(subst /,\\,$(shell /bin/cygpath -m -a 
>>>> "$(OUTPUTDIR)"))
>>>>    ABS_BOOTDIR     := $(subst /,\\,$(shell /bin/cygpath -m -a 
>>>> "$(BOOTDIR)"))
>>>>    ABS_GAMMADIR    := $(subst /,\\,$(shell /bin/cygpath -m -a 
>>>> "$(GAMMADIR)"))
>>>> -  ABS_OS_MAKEFILE := $(shell /bin/cygpath -m -a 
>>>> "$(HS_BUILD_DIR)/$(OSNAME)")/build.make
>>>> +  ABS_OS_MAKEFILE := $(shell /bin/cygpath -m -a 
>>>> "$(HS_MAKE_DIR)/$(OSNAME)")/build.make
>>>>  else
>>>>    ABS_OUTPUTDIR   := $(subst /,\\,$(shell $(CD) $(OUTPUTDIR);$(PWD)))
>>>>    ABS_BOOTDIR     := $(subst /,\\,$(shell $(CD) $(BOOTDIR);$(PWD)))
>>>> Hope this helps
>>>> -Max
>>>> On Jul 22, 2008, at 7:21 PM, Ingo Proetel wrote:
>>>>> Hi,
>>>>>
>>>>> I'm currently trying to setup an OpenJDK build on Windows.
>>>>>
>>>>> It works until it tries to compile hotspot. It misses 
>>>>> 'hotspot/build/windows/build.make'.
>>>>> The build process creates some directories but not the 
>>>>> 'hotspot/build'.
>>>>>
>>>>> Can somebody help me with this?
>>>>>
>>>>> Cheers,
>>>>> Ingo
>>>>>
>>>>> This is the output I get:
>>>>> /usr/bin/mkdir -p 
>>>>> s:/Users/proetel/projects/openjdk/jdk7/tl/build/windows-i586/hotspot/outputdir 
>>>>>
>>>>> /usr/bin/mkdir -p 
>>>>> s:/Users/proetel/projects/openjdk/jdk7/tl/build/windows-i586/hotspot/import 
>>>>>
>>>>> cd  ./hotspot/make && \
>>>>>     make JDK_TOPDIR=s:/Users/proetel/projects/openjdk/jdk7/tl/jdk 
>>>>> JDK_MAKE_SHARED_DIR=s:/Users/proetel/projects/openjdk/jdk7/tl/jdk/make/common/shared 
>>>>> EXTERNALSANITYCONTROL=true TARGET_CLASS_VERSION=5 
>>>>> MILESTONE=internal BUILD_NUMBER=b00 JDK_BUILD_NUMBER=b00 
>>>>> FULL_VERSION=1.7.0-internal-proetel_2008_07_22_13_07-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=32 COOKED_BUILD_NUMBER=0 
>>>>> ANT_HOME="c:/Programme/apache-ant-1.7.0" 
>>>>> ALT_OUTPUTDIR=s:/Users/proetel/projects/openjdk/jdk7/tl/build/windows-i586/hotspot/outputdir 
>>>>> ALT_EXPORT_PATH=s:/Users/proetel/projects/openjdk/jdk7/tl/build/windows-i586/hotspot/import 
>>>>> ALT_SLASH_JAVA=J: ALT_BOOTDIR=c:/Programme/Java/jdk1.6.0_03 
>>>>> ALT_LANGTOOLS_DIST=s:/Users/proetel/projects/openjdk/jdk7/tl/build/windows-i586/langtools/dist 
>>>>> all_product
>>>>> make[1]: Entering directory 
>>>>> `/cygdrive/s/Users/proetel/projects/openjdk/jdk7/tl/hotspot/make'
>>>>> cd /cygdrive/s/Users/proetel/projects/openjdk/jdk7/tl/hotspot/make; \
>>>>> make VM_TARGET=product generic_build2 
>>>>> ALT_OUTPUTDIR=s:/Users/proetel/projects/openjdk/jdk7/tl/build/windows-i586/hotspot/outputdir 
>>>>>
>>>>> make[2]: Entering directory 
>>>>> `/cygdrive/s/Users/proetel/projects/openjdk/jdk7/tl/hotspot/make'
>>>>> mkdir -p 
>>>>> s:/Users/proetel/projects/openjdk/jdk7/tl/build/windows-i586/hotspot/outputdir 
>>>>>
>>>>> cd 
>>>>> s:/Users/proetel/projects/openjdk/jdk7/tl/build/windows-i586/hotspot/outputdir; 
>>>>> \
>>>>>     MAKEFLAGS= MFLAGS= nmake /NOLOGO -f 
>>>>> s:/Users/proetel/projects/openjdk/jdk7/tl/hotspot/build/windows/build.make 
>>>>> \
>>>>>           Variant=compiler2 \
>>>>>                       
>>>>> WorkSpace=s:\\Users\\proetel\\projects\\openjdk\\jdk7\\tl\\hotspot \
>>>>>           BootStrapDir=c:\\Programme\\Java\\jdk1.6.0_03 \
>>>>>                       BuildUser=proetel \
>>>>>            ARCH=x86 BUILDARCH=i486 Platform_arch=x86 
>>>>> Platform_arch_model=x86_32 JDK_MKTG_VERSION=7 JDK_MAJOR_VER=1 
>>>>> JDK_MINOR_VER=7 JDK_MICRO_VER=0 JDK_BUILD_NUMBER=0 
>>>>> JAVA_HOME=c:\\Programme\\Java\\jdk1.6.0_03 
>>>>> GAMMADIR=s:\\Users\\proetel\\projects\\openjdk\\jdk7\\tl\\hotspot 
>>>>> MAKE_VERBOSE=y HOTSPOT_RELEASE_VERSION=13.0-b02 
>>>>> JRE_RELEASE_VERSION=1.7.0-internal-proetel_2008_07_22_13_07-b00 
>>>>> HOTSPOT_BUILD_VERSION= product
>>>>> NMAKE : fatal error U1052: file 
>>>>> 's:/Users/proetel/projects/openjdk/jdk7/tl/hotspot/build/windows/build.make' 
>>>>> not found
>>>>> Stop.
>>>>> make[2]: *** [generic_build2] Error 2
>>>>> make[2]: Leaving directory 
>>>>> `/cygdrive/s/Users/proetel/projects/openjdk/jdk7/tl/hotspot/make'
>>>>> make[1]: *** [product] Error 2
>>>>> make[1]: Leaving directory 
>>>>> `/cygdrive/s/Users/proetel/projects/openjdk/jdk7/tl/hotspot/make'
>>>>> make: *** [hotspot-build] Error 2
>>>>> -- 
>>>>> aicas Allerton Interworks Computer Automated Systems GmbH
>>>>> Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany
>>>>> http://www.aicas.com   * Tel: +49-721-663 968-0
>>>>>
>>>>> USt-Id: DE216375633, Handelsregister HRB 109481, AG Karlsruhe
>>>>> Geschäftsführer: Dr. James J. Hunt
>>>
>>>
>>> -- 
>>> aicas Allerton Interworks Computer Automated Systems GmbH
>>> Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany
>>> http://www.aicas.com   * Tel: +49-721-663 968-0
>>>
>>> USt-Id: DE216375633, Handelsregister HRB 109481, AG Karlsruhe
>>> Geschäftsführer: Dr. James J. Hunt
>>


-- 
aicas Allerton Interworks Computer Automated Systems GmbH
Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany
http://www.aicas.com   * Tel: +49-721-663 968-0

USt-Id: DE216375633, Handelsregister HRB 109481, AG Karlsruhe
Geschäftsführer: Dr. James J. Hunt



More information about the build-dev mailing list