GithubHelp home page GithubHelp logo

Comments (10)

pshipton avatar pshipton commented on August 26, 2024 1

The z/OS compile machines for IBM Java 8 are 2.1
Agreed AIX is min xlC v13 (IBM Java 8). We also compile on PPC BE which is also v13. It's being retired hopefully but it's not retired yet.
PPC LE just uses gcc now, not xlC.
Mac is missing from the list, the OpenJ9 compilers are listed in https://eclipse-openj9.github.io/openj9-docs/openj9_support/
The minimum gcc used for OpenJ9 is 10.3 and the minimum VS used is 2022. That doesn't mean older versions won't work, but we don't test them. Perhaps older version are fine since xlC 13 limits what can be used.

Where did you get the "excerpt from the OpenJ9 building instructions"?

I don't know about other consumers of OMR.
@0xdaryl @mstoodle may know.

from omr.

ThanHenderson avatar ThanHenderson commented on August 26, 2024 1

Thanks for the clarification, Peter. It'll help me determine which features we could safely use.

The excerpt was from the extension repos, not OpenJ9s instructions.

from omr.

pshipton avatar pshipton commented on August 26, 2024 1

And talking to the IBM SDK release team in India, 7.3 is what the JDK8 release still uses.

Just FYI, the OpenJ9 part of the IBM SDK uses 11.2, it's only other components that may still be using 7.3.

from omr.

ThanHenderson avatar ThanHenderson commented on August 26, 2024 1

I propose bumping the documentation and development to:

  • gcc 7.3
  • xlC 13.1.3
  • Visual Studio 2022
  • Xcode 12 (Clang 12)

from omr.

ThanHenderson avatar ThanHenderson commented on August 26, 2024

Info from extension repos:
JDK8: https://github.com/ibmruntimes/openj9-openjdk-jdk8/blob/c1470c8cffd73bfdd07ff63c25ff71da14cbb54f/common/autoconf/flags.m4#L528 (at least minimum of 6 for GCC)

JDK11: https://github.com/ibmruntimes/openj9-openjdk-jdk11/blob/839808e0d9f5c314f56d26ab57a0b0ac618c0e22/make/autoconf/toolchain.m4#L54-L59

JDK17: https://github.com/ibmruntimes/openj9-openjdk-jdk17/blob/7dfa0915ce2887d4dadc5d7d22e836edd5935c5a/make/autoconf/toolchain.m4#L52-L56

JDK21: https://github.com/ibmruntimes/openj9-openjdk-jdk21/blob/cbd5117c34619bfb4b5e6cf11815a118df44bc9a/make/autoconf/toolchain.m4#L52-L56

Potentially other relevant info:
https://github.com/eclipse-openj9/openj9/blob/master/doc/release-notes/0.43/0.43.md

from omr.

ThanHenderson avatar ThanHenderson commented on August 26, 2024

Conversations internally about AIX is that the xlC support is for v13 and up (13, 16, & 17), and V2R3 for z/OS.

from omr.

ThanHenderson avatar ThanHenderson commented on August 26, 2024

@pshipton Are gcc 10.3 for Linux and VS 2022 for Windows the appropriate versions here?
From the 0.43 release notes: linux windows

Do you know of any consumers of OMR that are relying on older versions?

from omr.

0xdaryl avatar 0xdaryl commented on August 26, 2024

I agree the document should be kept up to date, and thank you @ThanHenderson for looking at that.

While I am generally in favour of continuously raising the bar to allow more C++ features to be used, I think we need to be a bit more gradual about it (e.g., a jump from gcc 4.4.7 to 10.3 is pretty big in one go so perhaps we find something in between). Also remember that Eclipse OMR is an independent project from Eclipse OpenJ9, and while OpenJ9 is an important consumer, the OMR project can't base all its decisions on OpenJ9's requirements.

Moving up the compiler level is the kind of thing that should be announced to the community for awareness. I think the OMR release boundaries are appropriate for these kinds of changes (we have the 0.2.0 release planned for end of June, and every 3 months thereafter). If you have a compiler level proposal in between 4.4.7 and 10.3 for end of June please share for consideration.

To address your question, at one point a couple of years ago I am aware there was a project exploring the use of OMR that required an older gcc version (because their build infrastructure was unable to move up right away). That may no longer be a requirement for them and enough time has passed that OMR could make the case to gradually increase its minimum supported compiler level. Perhaps @mstoodle can weigh in on whether this is still a requirement.

from omr.

mstoodle avatar mstoodle commented on August 26, 2024

at one point a couple of years ago I am aware there was a project exploring the use of OMR that required an older gcc version (because their build infrastructure was unable to move up right away). That may no longer be a requirement for them and enough time has passed that OMR could make the case to gradually increase its minimum supported compiler level. Perhaps @mstoodle can weigh in on whether this is still a requirement.

I know the project you're referring to: it's not a requirement any more. I think it more comes down to consistent availability of features across the full set of platforms we and our stakeholders need to support. Otherwise, I'm happy for the bar to move up.

from omr.

ThanHenderson avatar ThanHenderson commented on August 26, 2024

I think a safe bet for the gcc version is 7.3 since that is the version that released with the spectre mitigation patch. And talking to the IBM SDK release team in India, 7.3 is what the JDK8 release still uses.

From a C++ feature standpoint, gcc was C++11 complete by release 4.8, so any release after that is not C++11 feature limiting for platforms compiling with gcc. It will be the other platforms which dictate the supported features, for which I've obtained the following minimum versions:

  • Windows: VS2017 (C++14 compliant)
  • AIX: xlc 12.1 (a bit nebulous (compiler reference))
  • Mac: Xcode 12 (Clang 12 -- C++17 compliant)

Edit: clarity, these are the compiler versions used for compiling the JCL only, so I guess they don't affect our code (OpenJ9 nor OMR). But my first sentence of this comment still applies.

from omr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.