JDK-6507349 : RFE: Provide consistent ways to build 64 bit VM across Solaris & Linux
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 7
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: linux
  • CPU: x86
  • Submitted: 2006-12-21
  • Updated: 2012-10-13
  • Resolved: 2007-01-17
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
Hotspot doesn't have a good way to build 64 VM on 64 bit Linux OS. Currently the command used to build 64 bit VM is "gnumake {product|fastdebug|jvmg}" (select one of the targets in {}). This in fact corresponds to how gcc works on these platforms, i.e. the default is to build 64 bit application unless you specify -m32 by yourself. Even though this is nice, it has two problems at least:

1. There is no way to build 32 bit VM even though you pass ARCH_DATA_MODEL=32 or whatever.
2. This is not consistent with other 64 bit OS such as Solaris. On Solaris, passing LP64=1 or ARCH_DATA_MODEL=64 will build 64 bit VM and w/o these options, it will build 32 bit VM by default. This is good in the sense that developer could expect what they could get. 

So it would be nice that we could provide a consistent way to build 64/32 bit VM on these 64 bit operating systems.

EVALUATION Hotspot build system expects LP64=1 or ARCH_DATA_MODEL=64 to be there in order to build 64 bit VM on Solaris. So use the same way for Linux AMD 64 too. Without either of these two options, 32 bit VM will be generated. This change should NOT affect how RE or JPRT currently works. They are using control workspace which explicitly adds ARCH_DATA_MODEL=64 to the gnumake options. PRT currently uses no option to build 64 bit VM on Linux which happens to work, but will break with my fix. So I've contacted PRT owners to modify that for me.