Skip to content

Add z/OS build and test instructions to README - #1756

Open
michael-ma-dev wants to merge 2 commits into
IBM:mainfrom
michael-ma-dev:docs/add-zos-setup-readme
Open

Add z/OS build and test instructions to README#1756
michael-ma-dev wants to merge 2 commits into
IBM:mainfrom
michael-ma-dev:docs/add-zos-setup-readme

Conversation

@michael-ma-dev

Copy link
Copy Markdown
Collaborator

This update adds build and test configuration instructions for z/OS (s390x) to the README, and consolidates the Semeru JDK setup instructions for AIX and z/OS.

Signed-off-by: Michael Ma michael.ma@ibm.com

Signed-off-by: Michael Ma <michael.ma@ibm.com>
@farshadasl
farshadasl removed their request for review September 8, 2026 18:01
Signed-off-by: Michael Ma <michael.ma@ibm.com>
@jasonkatonica

Copy link
Copy Markdown
Member

Hi @michael-ma-dev please change the state of this PR from "Draft" to "Ready for review" when you are ready for review of this content.

@michael-ma-dev
michael-ma-dev marked this pull request as ready for review September 9, 2026 13:04

@taoliult taoliult left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment thread README.md
rm -rf $JAVA_INSTALL_DIRECTORY/jdk-$JAVA_VERSION/lib/N
```
```console
export LIBPATH="$PROJECT_HOME/OCK/:$PROJECT_HOME/OCK/jgsk_sdk:$PROJECT_HOME/OpenJCEPlus/target/jgskit-mz-64:$LIBPATH"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we sure that we need $PROJECT_HOME/OpenJCEPlus here? In general id expect $PROJECT_HOME to be the root directory of the project already.

@michael-ma-dev michael-ma-dev Sep 9, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path was written under the understanding that $PROJECT_HOME is the parent
directory containing both the OCK/ folder and the cloned repo — consistent
with the README's Step 1 (mkdir $PROJECT_HOME/OCK) and the later
cd OpenJCEPlus after cloning.

Happy to update to $PROJECT_HOME/target/ jgskit-mz-64 if the convention is that $PROJECT_HOME should be set to the repo root. The current README doesn't seem to specify this.

Comment thread README.md
rm -rf $JAVA_INSTALL_DIRECTORY/jdk-$JAVA_VERSION/lib/N
```

Additionally, remove `OpenJCEPlus` from the providers list in `$JAVA_INSTALL_DIRECTORY/jdk-$JAVA_VERSION/conf/security/java.security`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this required to really remove OpenJCEPlus from the provider list? Id expect the provider to not load after the above actions are taken to remove the binaries required to load it. ( I expect the JCE framework to fail to load it and silently skip OpenJCEPlus provider )

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When tested on z/OS Semeru, after removing bundled libjgskit.so from $JAVA_HOME/lib, preloadJGskit() in NativeOCKImplementation throws ProviderException when libjgskit.so is missing.

Since Semeru lists OpenJCEPlus as number 1 provider, every JVM boot seems to triggers this. Removing OpenJCEPlus from java.security prevents the provider from loading at all
during the build, so the standard mvn works.

Comment thread README.md
#### Run single test

On AIX you must set an additional setting for the `LIBPATH` environment variable:
On AIX and z/OS you must set an additional setting for the `LIBPATH` environment variable:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we make this match line 160 above. I think its missing the , character.

Comment thread README.md

```console
rm $JAVA_INSTALL_DIRECTORY/jdk-$JAVA_VERSION/lib/libjgsk8iccs_64.so
rm $JAVA_INSTALL_DIRECTORY/jdk-$JAVA_VERSION/lib/libjgskit.so

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have to remove this new file given that the dll name is declared as libjgsk8iccs_64.so above on line 65?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

libjgsk8iccs_64.so is the OCK library and libjgskit.so is the JGSKIT
library — the native code built by this project. Both need to be removed from
the bundled JDK so that the freshly-built versions from target/jgskit-mz-64/
are used instead.

When tested on z/OS, using JDK with bundled libjgskit.so results in crash at testing phase.

The description only mentioned OCK and will be updated to include both.

Comment thread README.md
rm -rf $JAVA_INSTALL_DIRECTORY/jdk-$JAVA_VERSION/lib/N
```

Additionally, remove `OpenJCEPlus` from the providers list in `$JAVA_INSTALL_DIRECTORY/jdk-$JAVA_VERSION/conf/security/java.security`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure why you would need to do that.

Comment thread README.md

```console
rm $JAVA_INSTALL_DIRECTORY/jdk-$JAVA_VERSION/lib/libjgsk8iccs_64.so
rm $JAVA_INSTALL_DIRECTORY/jdk-$JAVA_VERSION/lib/libjgskit.so

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is also removing the native library for the OpenJCEPlus code. So, either the description above needs to be updated to indicate OCK and OpenJCEPlus native library different than... or this line should be removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants