code review (round 0) request for VS2010 IDE fix (8016601)

Daniel D. Daugherty daniel.daugherty at oracle.com
Fri Aug 2 15:36:07 PDT 2013


Greetings,

I have have a proposed fix for the following bug:

     8016601 Unable to build hsx24 on Windows using project creator and
             Visual Studio
     http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8016601
     https://jbs.oracle.com/bugs/browse/JDK-8016601

Here are the HSX-25 webrev URLs:

OpenJDK: http://cr.openjdk.java.net/~dcubed/8016601-webrev/0-hsx25/
Internal: http://javaweb.us.oracle.com/~ddaugher/8016601-webrev/0-hsx25/

Testing:
- JPRT windows_i586 and windows_x64 build and test
- local windows_i586 cmd line builds for:
   {OpenJDK, Oracle} x {Client, Server} VM x {product, debug, fastdebug}
- local windows_i586 VS2010 builds for
   {OpenJDK, Oracle} x {Client, Server, Tiered} VM x {product, debug, 
fastdebug}
- local windows_x64 VS2010 builds for
   {OpenJDK, Oracle} x {Client, Server, Tiered} VM x {product, debug, 
fastdebug}
   Thanks to Ron for doing the windows_x64 testing

Gory details are below. As always, comments, questions and
suggestions are welome.

Dan


Gory Details:

Build fixes:
- VS2010 IDE builds are working again; fixes this failure mode:

1>D:\hotspot_src\hsx\24\hotspot_14_jun\build\vs-i486\compiler2\debug\objectCountEventSender.obj 
: warning LNK4042: object specified more than once; extras ignored
1>D:\hotspot_src\hsx\24\hotspot_14_jun\build\vs-i486\compiler2\debug\errorReporter.obj 
: warning LNK4042: object specified more than once; extras ignored
1>     Creating library 
D:\hotspot_src\hsx\24\hotspot_14_jun\build\vs-i486\compiler2\debug\jvm.lib 
and object 
D:\hotspot_src\hsx\24\hotspot_14_jun\build\vs-i486\compiler2\debug\jvm.exp
1>jfrRequestables.obj : error LNK2019: unresolved external symbol 
"public: static void __cdecl 
ObjectCountEventSender::disable_requestable_event(void)" 
(?disable_requestable_event at ObjectCountEventSender@@SAXXZ) referenced in 
function "public: virtual void __thiscall 
VM_GC_SendObjectCountEvent::doit(void)" 
(?doit at VM_GC_SendObjectCountEvent@@UAEXXZ)
1>jfrRequestables.obj : error LNK2019: unresolved external symbol 
"public: static void __cdecl 
ObjectCountEventSender::enable_requestable_event(void)" 
(?enable_requestable_event at ObjectCountEventSender@@SAXXZ) referenced in 
function "public: virtual void __thiscall 
VM_GC_SendObjectCountEvent::doit(void)" 
(?doit at VM_GC_SendObjectCountEvent@@UAEXXZ)
1>D:\hotspot_src\hsx\24\hotspot_14_jun\build\vs-i486\compiler2\debug\jvm.dll 
: fatal error LNK1120: 2 unresolved externals

- The ProjectCreator tool is modified to support two new options:
   '-relativeAltSrcInclude' and '-altRelativeInclude'. Here's an
   example use of the new options:

       -relativeAltSrcInclude src\closed
       -altRelativeInclude share\vm

   which means config the project with some alternate source files in
   src\closed\share\vm that will replace the corresponding files in
   src\share\vm.

   For example, src\closed\share\vm\utilities\errorReporter.cpp replaces
   src\share\vm\utilities\errorReporter.cpp. In the VS2010 IDE, you'll
   still be able to see src\share\vm\utilities\errorReporter.cpp in the
   project source browser, but the icon will indicate that the file is
   excluded from the project.

   The ProjectCreator tool's file tree walking logic is modified to keep
   track of each alternate source file that is found. If a corresponding
   regular source file is found, then the regular source file is
   excluded from the project in favor of the alternate source version.

- VS2010 cmd line build no longer issue the following linker warnings:

     link.exe @C:\Users\lfoltan\AppData\Local\Temp\nm9B65.tmp
     errorReporter.obj : warning LNK4042: object specified more than 
once; extras ignored
     objectCountEventSender.obj : warning LNK4042: object specified more 
than once; extras ignored

Misc cleanups:

- removed more "core" config support from various makefiles and scripts;
   the "core" config is vestigal and was mostly removed years ago; the
   "core" config is not the same as the "minimalvm" config.
- removed extra references to ${ALTSRC}/share/vm/jfr objects
- added some "AltSrc" versus "OpenJDK" identification to messages where
   files are auto-generated
- added some missing copyright headers



More information about the hotspot-runtime-dev mailing list