If you are building with Visual Studio, it needs to be in your PATH
and it needs to pretty much be first in your PATH.
The Visual Studio tools expect to find their components via the PATH,
they won't look in their installed HOME location, they use PATH.
Most compilers figure out where HOME is and use the right components.
I don't think this issue is limited to hotspot, you will get messed
up somewhere else too, I forget where.

On any system, I generally put my own tools before /usr/bin anyway,
but maybe that's that historic and just me.
I always got caught if the system path /usr/ucb/bin preceeded Sun Studio,
ended up with an old antique ucb 'cc' instead of the compiler I wanted. :^(

-kto

Ingo Proetel wrote:
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



Reply via email to