Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update xlc compiler version #19098

Open
keithc-ca opened this issue Mar 7, 2024 · 19 comments
Open

Update xlc compiler version #19098

keithc-ca opened this issue Mar 7, 2024 · 19 comments

Comments

@keithc-ca
Copy link
Contributor

The minimum was changed to 17.1.1.4 in ibmruntimes/openj9-openjdk-jdk@b0474fc. A warning is now generated at configuration time - see https://openj9-jenkins.osuosl.org/job/Build_JDKnext_ppc64_aix_OpenJDK/633:

[2024-03-07T05:41:51.867Z] configure: WARNING: You are using xlc 16.01.0000.0011 which is older than 17.1.1.4. This is not a supported configuration.
@pshipton pshipton added this to the Java 23 milestone Mar 7, 2024
@pshipton
Copy link
Member

pshipton commented Mar 7, 2024

Yes we should update the head stream. Afaik xlc 17 options aren't compatible with xlc 16 options so we can't just switch. We need to add support to OpenJ9/OMR to use the correct option syntax.

@keithc-ca
Copy link
Contributor Author

The options can't be too different or the build would have failed (if openjdk used xlc 17 options that xlc 16 doesn't understand), although it's possible that OpenJ9 or OMR use options that won't work as is with xlc 17.

@pshipton
Copy link
Member

pshipton commented Mar 7, 2024

OpenJDK added support for xlc 17, if we tried to do a build using it OpenJDK would detect xlc 17 and do the appropriate thing.

@keithc-ca
Copy link
Contributor Author

I don't see anything that's sensitive to the version of xlc (other than the warning that 16.1 is unsupported), got an example?

@pshipton
Copy link
Member

pshipton commented Mar 7, 2024

I think it was a misunderstanding on my part. Looking back when I asked for xlC 17 to be installed on a machine, it seems I only got openxlC / ibm-clang, which uses different options. At the time I must have thought that was the only option. I've again requested getting xlc 17 installed in order to give it a try.

@pshipton
Copy link
Member

pshipton commented Mar 7, 2024

@keithc-ca
Copy link
Contributor Author

Yes ibm-clang is very different from xlc (which openjdk mistakenly refers to as "Open XL").

@pshipton
Copy link
Member

pshipton commented Mar 7, 2024

ibm-clang comes in a directory called openxlC. I'm not yet 100% sure there is anything else.
https://www.ibm.com/products/open-xl-cpp-aix-compiler-power describes Open XL and links to "classic compilers" https://www.ibm.com/docs/en/xl-c-and-cpp-aix which only includes up to 16.

@keithc-ca
Copy link
Contributor Author

It's my understanding that ibm-clang is the name of an executable in "Open XL"; IBM doesn't refer to the toolchain that includes xlc as "Open" (even though openjdk does) - that's the "classic" toolchain.

@pshipton
Copy link
Member

pshipton commented Mar 7, 2024

Checking with Julian about 17, "macro(s) and options are not compatible anymore". There is an ongoing effort to get OpenJ9 working.

@keithc-ca
Copy link
Contributor Author

The complaint has been upgraded to an error; see https://openj9-jenkins.osuosl.org/job/Build_JDKnext_ppc64_aix_OpenJDK/635 where the configure step fails:

[2024-03-15T14:50:21.167Z] configure: Using default toolchain clang (clang/LLVM)
[2024-03-15T14:50:21.167Z] configure: Will use user supplied compiler CC=xlclang
[2024-03-15T14:50:21.422Z] checking for xlclang... /opt/IBM/xlC/16.1.0/bin/xlclang
[2024-03-15T14:50:21.422Z] checking resolved symbolic links for CC... /opt/IBM/xlC/16.1.0/bin/xlclang++
[2024-03-15T14:50:21.422Z] configure: The C compiler (located as /opt/IBM/xlC/16.1.0/bin/xlclang) does not seem to be the required clang compiler.
[2024-03-15T14:50:21.422Z] configure: The result from running with --version was: "IBM XL C/C++ for AIX, V16.1.0  (5725-C72, 5765-J12)
[2024-03-15T14:50:21.422Z] Version: 16.01.0000.0011"
[2024-03-15T14:50:21.422Z] configure: error: A clang compiler is required. Try setting --with-tools-dir.
[2024-03-15T14:50:21.677Z] configure exiting with result code 1

A compiler that says "clang" in the version output is required.

@pshipton
Copy link
Member

pshipton commented Mar 15, 2024

We could try removing the error to see if it works anyway. It may be some time before OpenJ9 is ready to build with Open XL 17.

@keithc-ca
Copy link
Contributor Author

I started an internal build with 8327701: Remove the xlc toolchain reverted. It has gotten past the configuration issue. I'll create a pull request for that change if all goes well.

@keithc-ca
Copy link
Contributor Author

Internally, it didn't go as smoothly as I had hoped: trying externally via ibmruntimes/openj9-openjdk-jdk#757.

@pshipton
Copy link
Member

pshipton commented Mar 18, 2024

SHAs for the last acceptance build where AIX compiled using xlc 16.
OpenJ9: ae0c76e4fdb
OMR: 107d389e6a3
OpenJDKnext: a8c3007f8fb - openj9-openjdk-jdk

@keithc-ca
Copy link
Contributor Author

We need not delay use of OpenXL 17 until OpenJ9 and OMR can build with that compiler; jdknext can be configured using --with-openj9-cc and --with-openj9-cxx so OpenJ9 and OMR can continue to use xlc.

@pshipton
Copy link
Member

Should we be doing that rather than merging ibmruntimes/openj9-openjdk-jdk#757 ?

@pshipton
Copy link
Member

To answer my own question, we don't have machines ready to support using Open XL 17.

@keithc-ca
Copy link
Contributor Author

Even if we did have suitable machines, I wouldn't expect them to be updated immediately, so I suggest ibmruntimes/openj9-openjdk-jdk#757 be merged for now; we can revert those changes when we have Open XL 17 installed.

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

No branches or pull requests

3 participants