8209611: use C++ compiler for hotspot tests #634
@GoeLin This change now passes all automated pre-integration checks.
After integration, the commit message for the final commit will be:
At the time when this comment was updated there had been 5 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the
To verify what I did, I dumped the original and my change, and diffed the changes.
Sorry, my comment was aimed more at the original JBS issue (I like to understand what I review). Meanwhile, I found Igors original review thread in build-dev from 2018, which offers more explanations than the JBS issue:
It seems that converting everything to C++ files was a workaround for shortcomings in the build system for tests, where .c files include other .c files, so all of them have to be either C or C++.
"Currently our build system supports only 1-1 relation b/w tests lib/exec and source file; most of native libraries in vmTestbase have more than one source file. to work that around, we introduced a .c file for each library and theses .c files include all other required .c files."
I wondered about the implications since C->C++ conversion has pitfalls (http://david.tribble.com/text/cdiffs.htm), and the patch size makes earnest reviews challenging.
After applying your patch, I noticed that there are 78 files left in test/hotspot/jtreg that remain C. None of these were removed for JDK12, so looks like they were not touched by the original patch either. I did not find an explanation for that, but I assume that's ok.
Note that one disadvantage of moving wholesale to C++ is longer build times. But I guess that ship is sailed. Since if oracle did backport this we should follow suit.
To review, I tried to clone the original jdk12u sources, but both mercurial repo and github readonly mirror are that slow that I gave up after an hour. I diffed the two diffs by hand and did not find anything overly suspicious. I also looked at your patch in general, the places you pointed out, and it seems fine. Due to the patch size this was a cursory look only. I guess if tests start failing, we will see follow up issues.
Going to push as commit 4b591db.
Your commit was automatically rebased without conflicts.