JDK-6697238 : missing dependencies for precompiled headers with platform dependent includes
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs13
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2008-05-02
  • Updated: 2010-04-02
  • Resolved: 2008-07-03
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u14Fixed 7Fixed hs14Fixed
MakeDeps generates dependencies for when to rebuild the precompiled headers but doesn't properly take into account the platform dependent includes which are directly included by some of the platform independent files.  The includes are of the form:

  // Platform specifics                                                                                                              
  #include "incls/_templateTable_pd.hpp.incl"

Currently if you modify the platform dependent include and do an incremental build it won't rebuild the precompiled headers which can result in compilation problems like this where it seems to both know about and no know about a newly added method:

/net/smite/export/ws/fused/src/cpu/x86/vm/templateTable_x86_64.cpp:510: error: no ?void TemplateTable::string_index_check(RegisterImpl*, RegisterImpl*)? member function declared in class ?TemplateTable?
/net/smite/export/ws/fused/src/cpu/x86/vm/templateTable_x86_64.cpp: In static member function ?static void TemplateTable::scstore()?:
/net/smite/export/ws/fused/src/cpu/x86/vm/templateTable_x86_64.cpp:963: error: cannot call member function ?void TemplateTable::string_index_check(RegisterImpl*, RegisterImpl*)? without object

SUGGESTED FIX http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/8b48a7bd2bf7

EVALUATION The platform dependent files should be collected and emitted when the main file is emitted in the dependencies.