Hi Dmitry, I will discuss the disabling of optimization with Erik Joelsson and get back to you.
Does this code snippet address your concerns with how “javaclassopt” is created? int retval; static char javaclassopt[4096]; char *javaclasspath = NULL; char *javaclasspathopt = NULL; printf("Test started with pid: %ld\n", (long) getpid()); /* set the java class path so the DoOverflow class can be found */ javaclasspath = getenv("CLASSPATH"); retval = snprintf(javaclassopt, sizeof(javaclassopt), "-Djava.class.path=%s", javaclasspath); if (retval < 0) { fprintf(stderr, "Test ERROR. Problem creating javaclasspath\n"); exit(7); } if (retval >= sizeof(javaclassopt)) { fprintf(stderr, "Test ERROR. CLASSPATH is too long\n"); exit(7); } I will make the change you suggested for the usage() function. Thanks, Gerald > On Jun 2, 2016, at 9:54 AM, Dmitry Samersoff <dmitry.samers...@oracle.com> > wrote: > > Gerald, > > exeinvoke.c > > 127: > I think we should compile entire test (and probably all other tests) > with disabled optimization (e.g. -g -O0) to simplify debugging if the > test crash. > > > 239: > Please declare a static variable: > > static char javaclassopt[4096]; > > then use > > snprintf(javaclassopt, sizeof(javaclassopt), > "-Djava.class.path=%s", javaclasspath); > > and check it's return value. > > > 295: Please change usage() to return value 7 rather than call exit and > change this line to > > return usage(); > > to avoid unreachable statements. > > -Dmitry > > On 2016-06-02 18:28, Gerald Thornbrugh wrote: >> Hi Everyone, >> >> Please review my changes to address JDK-8144278. >> >> Bug: https://bugs.openjdk.java.net/browse/JDK-8144278 >> >> JDK Webrev: http://cr.openjdk.java.net/~gthornbr/8144278/jdk-webrev.00/ >> <http://cr.openjdk.java.net/%7Egthornbr/8144278/jdk-webrev.00/> >> >> Hotspot Webrev: >> http://cr.openjdk.java.net/~gthornbr/8144278/hotspot-webrev.00/ >> <http://cr.openjdk.java.net/%7Egthornbr/8144278/hotspot-webrev.00/> >> >> >> The fix makes changes to two areas. >> >> The JDK changes where needed to add a path to the libjvm.so library when >> linking test executables. >> These changes where provide by Erik Joelsson. >> >> The Hotspot changes addressed the following issues: >> >> The StackGuardPages test directory needed to be added to the list of >> native executable tests. >> >> The libjvm.so and libpthread.so libraries needed to be added to the >> LDFLAGS definition for the >> "invoke" test executable. >> >> The StackGuardPages/testme.sh script needed to specify that >> DoOverflow.java must be complied, >> specify the new location of the "invoke" test executable and remove all >> portions of the script that >> compiled and linked DoOverflow.java and invoke.c. >> >> The native test source file "invoke.c" needed to be renamed >> "exeinvoke.c" so the build system will >> automatically build it. >> >> The native test source file exeinvoke.c needed 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 in-lining the do_overflow() function which caused it not >> to get called. >> >> Please let me know if you have any questions or concerns. >> >> Thanks, >> >> Gerald >> >