Skip to content

Commit

Permalink
Merge pull request ibmruntimes#265 from pshipton/zlibnx
Browse files Browse the repository at this point in the history
Look for -XX:[+/-]UseZlibNX on AIX
  • Loading branch information
keithc-ca authored Sep 22, 2023
2 parents eda5e2c + 8f89327 commit ae65ab9
Showing 1 changed file with 28 additions and 5 deletions.
33 changes: 28 additions & 5 deletions src/java.base/unix/native/libjli/java_md.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

/*
* ===========================================================================
* (c) Copyright IBM Corp. 2020, 2021 All Rights Reserved
* (c) Copyright IBM Corp. 2020, 2023 All Rights Reserved
* ===========================================================================
*/

Expand Down Expand Up @@ -376,12 +376,35 @@ CreateExecutionEnvironment(int *pargc, char ***pargv,
* o $JVMPATH (directory portion only)
* o $JRE/lib
* o $JRE/../lib
* o ZLIBNX_PATH (for AIX P9 or newer systems with NX)
* o ZLIBNX_PATH (for AIX P9 or newer systems with NX, unless -XX:-UseZlibNX is set)
*
* followed by the user's previous effective LD_LIBRARY_PATH, if
* any.
*/

#ifdef AIX
int aixargc = *pargc - 1; // skip the launcher name
char **aixargv = *pargv + 1;
const char *aixarg = NULL;
jboolean useZlibNX = JNI_TRUE;
while (aixargc > 0 && *(aixarg = *aixargv) == '-') {
if (JLI_StrCmp(aixarg, "-XX:+UseZlibNX") == 0) {
useZlibNX = JNI_TRUE;
} else if (JLI_StrCmp(aixarg, "-XX:-UseZlibNX") == 0) {
useZlibNX = JNI_FALSE;
}
aixargc--;
aixargv++;
}
useZlibNX = useZlibNX && power_9_andup() && power_nx_gzip();
if (JLI_IsTraceLauncher()) {
printf("Add " ZLIBNX_PATH " to the LIBPATH: %s P9+ %s NX %s\n",
useZlibNX ? "TRUE" : "FALSE",
power_9_andup() ? "TRUE" : "FALSE",
power_nx_gzip() ? "TRUE" : "FALSE");
}
#endif

runpath = getenv(LD_LIBRARY_PATH);

/* runpath contains current effective LD_LIBRARY_PATH setting */
Expand All @@ -390,8 +413,8 @@ CreateExecutionEnvironment(int *pargc, char ***pargv,
new_runpath_size = ((runpath != NULL) ? JLI_StrLen(runpath) : 0) +
2 * JLI_StrLen(jrepath) +
#ifdef AIX
/* On AIX P9 or newer with NX accelerator enabled, add the accelerated zlibNX to LIBPATH */
((power_9_andup() && power_nx_gzip()) ? JLI_StrLen(":" ZLIBNX_PATH) : 0) +
/* On AIX P9 or newer with NX accelerator enabled, add the accelerated zlibNX to LIBPATH. */
(useZlibNX ? JLI_StrLen(":" ZLIBNX_PATH) : 0) +
#endif
JLI_StrLen(new_jvmpath) + 52;
new_runpath = JLI_MemAlloc(new_runpath_size);
Expand Down Expand Up @@ -419,7 +442,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv,
jrepath,
jrepath
#ifdef AIX
, ((power_9_andup() && power_nx_gzip()) ? (":" ZLIBNX_PATH) : "")
, (useZlibNX ? (":" ZLIBNX_PATH) : "")
#endif
);

Expand Down

0 comments on commit ae65ab9

Please sign in to comment.