review request for 6812297

Ivan Krylov Ivan.Krylov at Sun.COM
Thu Mar 5 12:52:28 PST 2009


Hi,

To be noted that there is an error in he webrev

now in build_vm_def.sh
  69 DUMPBIN /OUT:vm3.def /symbols *.obj
should be
  69 $DUMPBIN /OUT:vm3.def /symbols *.obj

See more below

Christian Wimmer wrote

> 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.
Did you ever file a CR for these issues? Please do so with the remaining 
ones.
>
>
> 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.
I have not tried 64 bit OS/IDE but I can imagine there are problems. 
Also we have a cross-build script that may be out of sync too.
This needs to be fixed separately.
>
> 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.
So i did not see this for 32 bit ide.
>
> 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"
Same
>
> 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)\\\" \
Fixed before. see cr 6806046
>
> 4) In the same file, the following define is necessary to avoid build 
> errors starting with Visual Studio 2005:
>     -define _CRT_SECURE_NO_WARNINGS \
Fixed with this patch.
>
>
> Christian
>
Ivan
>
>
>
> 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