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

Migrate to CMake buildsystem #90

Open
5 of 14 tasks
dnakamura opened this issue Sep 20, 2017 · 14 comments
Open
5 of 14 tasks

Migrate to CMake buildsystem #90

dnakamura opened this issue Sep 20, 2017 · 14 comments

Comments

@dnakamura
Copy link
Contributor

dnakamura commented Sep 20, 2017

Long running issue to track progress on migrating openj9 from UMA to CMake/

  • Platform Support:

    • xLinux
    • pLinux

Timeline

Nov 23

Dec 17

Dec 21

March 1

March 1

Milestone: First pass of linux x86-64 cmake build modulo any bugs

March 20

March 22

  • Optimized bytecode interpreter on windows

Milestone: First pass of win x86-64 cmake build modulo any bugs

April 12

  • AIX Support
  • All supported platforms work on cmake
  • Turn off UMA

Validation

  • TODO: how to validate the cmake build is equivalent to the autotools build?
  • Test equivilent build flags between uma and cmake builds
  • Testing
  • Perf

Misc TODOS

  • Copyright info
  • Documentation describing how the cmake build is structured
@DanHeidinga
Copy link
Member

Thanks @dnakamura. Can you outline the plan (including the great details in PR #78) for how we'll transition to cmake?

@dnakamura
Copy link
Contributor Author

Yeah working on fleshing out some details now

@jbduncan
Copy link

I'd completely understand if the decision to use CMake is set in stone now, but I wondered if Bazel was at all considered as an option? By my understanding, it is made specifically for building and testing large code bases quickly, which may be beneficial for OpenJ9.

@dnakamura
Copy link
Contributor Author

@jbduncan I don't recall all the details but I do remember looking into Bazel somewhat. IIRC it didn't really get us anything that CMake can't do. Also it has some drawbacks compared with CMake, namely lack of platform support (I don't think it can handle AIX or z/OS)

@jbduncan
Copy link

@dnakamura Okay, that's totally fair! Many thanks for explaining a bit of the history behind the decision to use CMake for me. :)

dnakamura added a commit to dnakamura/openj9 that referenced this issue Sep 22, 2017
This is the initial commit of the CMake build system. Its not 100%
complete, but it does a large chunk. See eclipse-openj9#90

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
@pshipton pshipton added this to the Release 0.12.0 milestone Nov 1, 2018
@DanHeidinga
Copy link
Member

This won't complete in 0.12.0. Moving to 0.14.0. @dnakamura Can you update the timeline for when this will finish?

@pshipton pshipton removed this from the Release 0.13.0 (Java 12) milestone Feb 6, 2019
@dnakamura
Copy link
Contributor Author

DDR has proven to be a bigger issue than anticipated. Have WIP pr open at omr. Plan to get finishing touches done today and move on (although I suspect the PR will spend considerable time in review)

@dnakamura
Copy link
Contributor Author

DDR PRs pending review, as is one or two changes regarding staging the source files.
Only one other changre required in the jdk extensions repo, but leaving that for now as I am on vacation this week, and the chances of a build breakage is high

@dnakamura
Copy link
Contributor Author

Things running behind due to some old PRs that fell on the back burner and got forgotten about, as well as having to deal with some unexpected flooding at my house. WIll work through the weekend to see if we can get things back on track

@DanHeidinga
Copy link
Member

some unexpected flooding at my house

Good luck with the cleanup! And hopefully the rising temps don't lead to more.

@fjeremic
Copy link
Contributor

fjeremic commented Mar 25, 2019

FYI a bunch of z/OS CMake issues are fixed in [1]. I think we'll need all of them for OpenJ9 as well.

[1] eclipse/omr#3693

@dnakamura
Copy link
Contributor Author

Status update:
Just polishing off a large PR which significantly refactors the way cmake handles ddr, will open the PR before end of day. (largely a matter of isolating the changes from my current dev tree).

My current monolthic working tree can now successfully run a full make all on the openjdk extensions as well as test matterial /wconfigure --enable-ddr

Looking at making sanity tests pass in order to run cmake builds/testing as part of nightly builds. Out of sanity test set, there are currently 20 failing tests. Will look at resolving once DDR related prs are open

FAILED test targets:
        cmdLineTester_jvmtitests_5
        cmdLineTester_jvmtitests_7
        cmdLineTester_jvmtitests_8
        cmdLineTester_jvmtitests_hcr_7
        cmdLineTester_jvmtitests_hcr_8
        cmdLineTester_jvmtitests_hcr_10
        cmdLineTester_jvmtitests_debug_3
        cmdLineTester_jvmtitests_debug_5
        cmdLineTester_jvmtitests_debug_7
        cmdLineTester_jvmtitests_debug_8
        cmdLineTester_jvmtitests_debug_9
        cmdLineTester_jvmtitests_debug_11
        cmdLineTester_decompilationTests_1
        cmdLineTester_CryptoTest_0
        cmdLineTester_callsitedbgddrext_openj9_0
        J9vmTest_2
        J9vmTest_4
        J9vmTest_5
        SharedCPEntryInvokerTests_0
        SharedCPEntryInvokerTests_1

@fjeremic
Copy link
Contributor

fjeremic commented May 21, 2019

@dnakamura FYI I just completed full migration of OMR configure/build/test to CMake in eclipse/omr#3693. I have DDR disabled at the moment in the pipeline file (search of -DOMR_DDR=0). I hope my changes play nice with yours!

@DanHeidinga
Copy link
Member

Discussed with @dnakamura:

  • We are a week to a week+half away from a completed xlinux jdk11 cmake build.
  • Timeline: 6 weeks after xlinux for all of JDK 11 to be complete

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

No branches or pull requests

6 participants