Review request for 6647068 & 6681796

Xiaobin Lu Xiaobin.Lu at Sun.COM
Tue Jun 10 11:46:37 PDT 2008


Webrev:
http://javaweb.sfbay/~xl116366/webrev/6647068/
http://javaweb.sfbay/~xl116366/webrev/6681796/

Details:
CR 6647068: libjvm.so is not built PIC

During JDK 6 time frame, after the fat java project was rejected by the 
client team, we (runtime team) decided to build non-PIC libjvm.so on 
Linux x86 platforms and in the meantime, to speed up the relocation, we 
hand picked a fixed virtual address which the libjvm.so is loading at. 
Although most time this actually works fine, some customers complained 
about the failure call to JNI_CreateJavaVM since that preferred address 
was somehow used before the call. Ideally, the runtime loader could 
choose another location to load libjvm.so when the preferred address has 
been taken already. But unfortunately this can't be achieved currently. 
So to make this work, we have to remove the preferred address built with 
libjvm.so. This however will significantly increase the relocation cost 
during application startup. So to compromise, I am using the same 
mechanism as Solaris, partial PIC. This can keep the most of the 
benefits of the non-PIC library and in the same time reduce some of the 
relocation overheads due to the absence of the preferred base address. I 
ran reference client in refworkload and noticed about 1.1% regression on 
real footprint and about 3.06% regression on startup3. This is much 
better than simply removing the preferred address.

CR 6681796:hotspot build failure on gcc 4.2.x (ubuntu 8.04) w/ openjdk6

The most recent GCC release (4.2.x) gives out warnings when it sees the 
conversion from "const char*" to "char*". The default hotspot makefiles 
use the -Werror flag, making warnings into errors and the build fails. 
The fix in the webrev basically corrects these places in our code.

Reviewed by:
Verified by:
runThese full

Thanks,
-Xiaobin



More information about the hotspot-dev mailing list