JDK-8144278 : [TESTBUG] hotspot/runtime/StackGuardPages/testme.sh should use native library build support
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-11-30
  • Updated: 2016-08-11
  • Resolved: 2016-07-16
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 9
9 b131Fixed
Related Reports
Relates :  
Relates :  
Description
hotspot/runtime/StackGuardPages/testme.sh tries to use the locally installed gcc to compile a native library. This is problematic because not all test devices have gcc installed. Also, on 64-bit machines running 32-bit tests, sometimes 32-bit compilation is not supported. Even if the installed gcc will support both 32-bit and 64-bit compilations, sometimes -m32 is not recognized on a pure 32-bit systems.

Build/makefile support as been added to allow building the native libraries along with the JDK, allowing the cross tools to be used. This test should be converted to use that support.
Comments
To support building the native tests for StackGuardPages the following issues need to be addressed: The build system need to be modified to add libjvm.so to the library path when executables are built. The StackGuardPages test directory needs to be added to the list of native executable tests. The libjvm.so and libpthread.so libraries need to be added to the LDFLAGS definition for the invoke test executable. The StackGuardPages/testme.sh script must specify that DoOverflow.java is complied, specify the new location of the invoke test executable and remove all of the script that compiled DoOverflow.java and invoke.c. The native test source file invoke.c must be renamed exeinvoke.c so the build system will automatically build it. The native test source file exeinvoke.c needs to be changed to compile without warnings, pass the path of the DoOverflow.class file to the function which starts the JVM and keep the linux gcc compiler optimizer from inlining the do_overflow() function.
02-06-2016