review request for 6812297

Christian Wimmer wimmer at ssw.jku.at
Thu Mar 5 09:04:39 PST 2009


Hi

Great to see these issues fixed. I sent a mail with some Visual Studio  
problems some months ago. I repeat it here because some issues are  
still present, I would guess 1) and 2). I I assume issue 3) and 4) are  
covered by your  patch.


When building the HotSpot VM on Windows using the create-script that  
generates the Visual Studio project files, a bunch of problems occur.  
I use Visual Studio 2008 on 64-bit Windows Vista, but most things are  
independent of this configuration. The first two problems seem to be  
related to the recent integration of the G1 garbage collector.

1) The most sever problem is that create.bat stops with the error  
message "command line too long" when executing MakeDeps. The tool  
takes so many parameters to configure the file structure for the VS  
project. The integration of G1 added some new ones, so now the line is  
too long. Even putting the source code directly into  C:\ so that  
absolute paths are as short as possible does not help. My solution is  
to abbreviate some command line flags, like "-additionalFile" and "- 
additionalGeneratedFile". This works, but is no general solution for  
the future.

2) Missing includeDB reference for G1: In the file "make\windows 
\projectfiles\common\Makefile", the reference of "includeDB_gc_g1" is  
missing in the definition of "IncludeDBs_gc"

3) The macro HOTSPOT_LIB_ARCH is not defined, i.e. the following line  
is missing in the file "make\windows\makefiles\makedeps.make":
	-define HOTSPOT_LIB_ARCH=\\\"$(BUILDARCH)\\\" \

4) In the same file, the following define is necessary to avoid build  
errors starting with Visual Studio 2005:
	-define _CRT_SECURE_NO_WARNINGS \


Christian




On Mar 5, 2009, at 4:55 AM, Ivan Krylov wrote:

> Webrev: http://cr.openjdk.java.net/~ikrylov/6812297.00/
>
> 6812297: update project creation for Visual Studio 2005-2008
>
> Details:
>
> We have not updated project creation for Visual Studio since .NET  
> 2003. VS 2008 Express is the only free edition available.
>
> The Visual Studio internal converter does a pretty god job but with  
> a few shortcomings.
> Here are the problems discovered:
> 1) For command line compilation we supply  _CRT_SECURE_NO_DEPRECATE  
> define but the flag is missing in the VS proj file
> 2) In VS proj in the CommandLine property it was OK in .NET 2003 to  
> separate 2 commands with <CR>. Since 2005 we need "&#x0D;&#x0A;"
> 3) If cl or link are called from a shell script from IDE in >2003  
> the pipes can not be used. This effects creation of vm.def files
>
> So I have addressed these issues.
>
> Comments to changes:
>
> 1) Replaced /D_CRT_SECURE_NO_DEPRECATE in make/windows/makefiles/ 
> compile.make with
> #pragma warning( disable : 4996 ) in src/share/vm/utilities/ 
> globalDefinitions_visCPP.hpp
> That is the place where we disable other warnings.
> There I also had to move vsnprintf down a bit
>
> Also I had to add /D_CRT_SECURE_NO_DEPRECATE  to make/windows/ 
> makefiles/adlc.make since adlc does not use  
> globalDefinitions_visCPP.hpp
>
> 2)Updated make/windows/makefiles/sanity.make, make/windows/makefiles/ 
> rules.make, make/windows/create.bat to process .Net 2005/2008 cl  
> versions
>
> 3)Added to build_vm_def.sh an attempt to recover from error when  
> "which" command failed
>
> 4)Added if build_vm_def.sh is going to use version 800/900 of  
> link.exe then use transit file for dumpbin
>
> 5) Added/changed to src/share/tools/MakeDeps/ 
> WinGammaPlatformVC7.java, src/share/tools/MakeDeps/ 
> WinGammaPlatformVC8.java, src/share/tools/MakeDeps/ 
> WinGammaPlatformVC9.java so that generated proj files get proper  
> version
>
> 6) Change in WinGammaPlatformVC7.java to address issue 2 above
>
> 7) Because of issue 3 above I added passing of linker version in  
> make/windows/makefiles/makedeps.make
>
> Reviewed by:
> Verified by:
> JPRT
>
> Regards,
>
> Ivan
>
>




More information about the hotspot-runtime-dev mailing list