JDK-6511994 : Hotspot build fails if the workspace path contains certain strings such as win32, solaris and linux.
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 7
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2007-01-11
  • Updated: 2012-10-08
  • Resolved: 2007-01-31
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
6u4Fixed 7Fixed hs10Fixed
The way current hotspot build works is to call a Java program called Makedeps to figure out what files need to be built and what the dependencies are. The way Makedeps figuring out the set of files to be built is to match the file absolute path with a pre-defined set of strings depending on the platform. For example, on Windows 32 bit platform, it tries to match the file path name to see if it contains "win32" or "i586" etc. 

There is a file called dump_md.cpp in each of the src\cpu\<cpu>\vm directory which is supposed to be named as dump_<cpu>.cpp. But for some historical reasons, it is renamed as so and this will cause problem if the directory name of the workspace contains win32, Makedeps will match the first found dump_md.cpp which is located at <ws>/src/cpu/amd64/vm directory based on the alphabetical order. So it will use that instead of using the one in i486 directory. And this will definitely cause the build fail.

EVALUATION The way to fix this is to check the found path name match starts with character after the end of the source base.