eclipse-openj9 / openj9

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.27k stars 721 forks source link

Migrate to CMake buildsystem #90

Open dnakamura opened 6 years ago

dnakamura commented 6 years ago

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

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

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

April 12

Validation

Misc TODOS

DanHeidinga commented 6 years ago

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

dnakamura commented 6 years ago

Yeah working on fleshing out some details now

jbduncan commented 6 years ago

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 commented 6 years ago

@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 commented 6 years ago

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

DanHeidinga commented 5 years ago

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

dnakamura commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

some unexpected flooding at my house

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

fjeremic commented 5 years ago

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] https://github.com/eclipse/omr/pull/3693

dnakamura commented 5 years ago

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 commented 5 years ago

@dnakamura FYI I just completed full migration of OMR configure/build/test to CMake in https://github.com/eclipse/omr/pull/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 commented 5 years ago

Discussed with @dnakamura: