Integrated: 8263856: Github Actions for macos/aarch64 cross-build

2021-04-06 Thread Anton Kozlov
On Tue, 30 Mar 2021 15:03:29 GMT, Anton Kozlov  wrote:

> Please review a change that adds cross-compiled macos/aarch64 platform build 
> into Github Actions test workflow.
> 
> The steps are basically copy-paste of macos/x86-64 build with the necessary 
> platform name adjustments. Xcode 12.4 is also used for as macos/aarch64 build.
> 
> I've checked the produced build (can be found in 
> https://github.com/AntonKozlov/jdk/actions/runs/667527036), it starts on the 
> actual aarch64 machine.

This pull request has now been integrated.

Changeset: 114e3c3e
Author:Anton Kozlov 
Committer: Vladimir Kempik 
URL:   https://git.openjdk.java.net/jdk/commit/114e3c3e
Stats: 107 lines in 1 file changed: 107 ins; 0 del; 0 mod

8263856: Github Actions for macos/aarch64 cross-build

Reviewed-by: erikj

-

PR: https://git.openjdk.java.net/jdk/pull/3270


Re: CMake replacing Autotools?

2021-04-06 Thread Robin Westberg
Hi Christoph,

> On 19 Mar 2021, at 00:00, Christoph Grüninger  wrote:
> 
> ...
> 
> 2. More choices to actually build the project: Use integrated build
> tools of IDEs (Visual Studio, Xcode) or use Ninja, which is faster than
> gmake
> 
> ...
> 
> 4. CMake is better supported by IDEs like Visual Studio, Qt Creator,
> KDevelop.


Regarding the IDE support points, it’s possible to generate a CMakeLists.txt 
from the compile_commands.json file created when building using the current 
make system. You could then use CMake to generate a native project file for 
your IDE of choice, and use that for compiling and debugging HotSpot (final 
linking etc would still be done by make). I have a prototype for this that 
worked reasonably well with at least Xcode, CLion and Visual Studio as I 
remember it. If this sounds interesting to anyone I could perhaps try to make 
it available somewhere.. :)

Best regards,
Robin

> 
> 5. A lot of code bases were ported to CMake like KDE, Qt, or LLVM. Their
> arguments apply here, too. Also their trade-offs between investment and
> benefit.
> 
>> At various times, I have dreamed of replacing the configure script with
>> something that is more modern and easy to maintain than this bash/m4
>> mix. We have a very well-defined API for the configure script: the user
>> calls "bash configure" in the root directory of the project, with a set
>> of --options, and as a result we create a spec.gmk file that defines the
>> configuration. This could easily be replicated in another system. But if
>> I were to rewrite this from scratch, I'd rather write the whole
>> configure logic in Java (apart from some thin shell script logic needed
>> to find the boot jdk), rather than trying to shoehorn in our build model
>> in CMake.
> 
> I understand your temptation, but writing and maintaining all the
> configure/find logic and quirks will be a burden. I'd try to reduce the
> build system code to a minimum and rely on a third-party solution to do
> as much as possible for me.
> 
> Bye
> Christoph
> 
> -- 
> Als wär es nix, leb' ich von [IT] und mach' nur, was ich lieb'
> Lebe wie im Paradies, womit hab' ich das verdient?
> Die Wahrheit ist: Hab' ich nicht, ich bin nur reicher beschenkt
> Als jemand in einem armen Land mit dem gleichen Talent
> [frei nach Tua von Die Orsons - Oioioiropa]



Re: RFR: 8263856: Github Actions for macos/aarch64 cross-build [v2]

2021-04-06 Thread Erik Joelsson
On Tue, 6 Apr 2021 06:22:47 GMT, Anton Kozlov  wrote:

>> Please review a change that adds cross-compiled macos/aarch64 platform build 
>> into Github Actions test workflow.
>> 
>> The steps are basically copy-paste of macos/x86-64 build with the necessary 
>> platform name adjustments. Xcode 12.4 is also used for as macos/aarch64 
>> build.
>> 
>> I've checked the produced build (can be found in 
>> https://github.com/AntonKozlov/jdk/actions/runs/667527036), it starts on the 
>> actual aarch64 machine.
>
> Anton Kozlov has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains three additional 
> commits since the last revision:
> 
>  - Specify Xcode version; don't use --extra-{c,cxx,ld}flags
>  - Merge remote-tracking branch 'upstream/jdk/master' into 
> 8263856-gha-macos-aarch64
>  - Add macos/aarch64 build workflow

Marked as reviewed by erikj (Reviewer).

-

PR: https://git.openjdk.java.net/jdk/pull/3270


Re: RFR: 8263856: Github Actions for macos/aarch64 cross-build [v2]

2021-04-06 Thread Anton Kozlov
On Tue, 30 Mar 2021 16:29:49 GMT, Erik Joelsson  wrote:

>> Anton Kozlov has updated the pull request with a new target base due to a 
>> merge or a rebase. The incremental webrev excludes the unrelated changes 
>> brought in by the merge/rebase. The pull request contains three additional 
>> commits since the last revision:
>> 
>>  - Specify Xcode version; don't use --extra-{c,cxx,ld}flags
>>  - Merge remote-tracking branch 'upstream/jdk/master' into 
>> 8263856-gha-macos-aarch64
>>  - Add macos/aarch64 build workflow
>
> .github/workflows/submit.yml line 1444:
> 
>> 1442:   --with-conf-name=macos-aarch64
>> 1443:   --openjdk-target=aarch64-apple-darwin
>> 1444:   --with-extra-cflags="-arch arm64"
> 
> If configure isn't adding these flags automatically, that's something that we 
> should fix.

Thanks for review! The problem with flags is resolved by merging in master with 
https://bugs.openjdk.java.net/browse/JDK-8264650

The Xcode version if fixed to 12.4, which is consistent with the current state 
of PR #3258 (https://bugs.openjdk.java.net/browse/JDK-8264224)

-

PR: https://git.openjdk.java.net/jdk/pull/3270