Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags [v4]
On Thu, 3 Mar 2022 08:12:37 GMT, Julian Waters wrote: >> Currently the only other option for manually configuring the build platform >> while cross compiling are devkits, which don't work on certain systems and >> are also more focused on differentiating the build and target compilers >> instead. This patch adds the ability to explicitly set the build platform >> through a new option, which can be especially helpful for when autodetection >> fails and devkits cannot be relied on, and also for simpler cross >> compilation cases (Like the one described in building.md) >> >> This also removes support for the legacy cross compilation flags as well. >> >> WIP: Translation from markdown to html > > Julian Waters has updated the pull request incrementally with one additional > commit since the last revision: > > Syntax Updated accordingly, html version of the docs is still WIP (Some trouble on my end with `make update-build-docs`) - PR: https://git.openjdk.java.net/jdk/pull/7656
Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags [v4]
> Currently the only other option for manually configuring the build platform > while cross compiling are devkits, which don't work on certain systems and > are also more focused on differentiating the build and target compilers > instead. This patch adds the ability to explicitly set the build platform > through a new option, which can be especially helpful for when autodetection > fails and devkits cannot be relied on, and also for simpler cross compilation > cases (Like the one described in building.md) > > This also removes support for the legacy cross compilation flags as well. > > WIP: Translation from markdown to html Julian Waters has updated the pull request incrementally with one additional commit since the last revision: Syntax - Changes: - all: https://git.openjdk.java.net/jdk/pull/7656/files - new: https://git.openjdk.java.net/jdk/pull/7656/files/9189e54b..1d398962 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk=7656=03 - incr: https://webrevs.openjdk.java.net/?repo=jdk=7656=02-03 Stats: 13 lines in 2 files changed: 1 ins; 2 del; 10 mod Patch: https://git.openjdk.java.net/jdk/pull/7656.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/7656/head:pull/7656 PR: https://git.openjdk.java.net/jdk/pull/7656
Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags [v3]
> Currently the only other option for manually configuring the build platform > while cross compiling are devkits, which don't work on certain systems and > are also more focused on differentiating the build and target compilers > instead. This patch adds the ability to explicitly set the build platform > through a new option, which can be especially helpful for when autodetection > fails and devkits cannot be relied on, and also for simpler cross compilation > cases (Like the one described in building.md) > > This also removes support for the legacy cross compilation flags as well. > > WIP: Translation from markdown to html Julian Waters has updated the pull request incrementally with one additional commit since the last revision: Don't perform autodetection if --build is specified - Changes: - all: https://git.openjdk.java.net/jdk/pull/7656/files - new: https://git.openjdk.java.net/jdk/pull/7656/files/d523d495..9189e54b Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk=7656=02 - incr: https://webrevs.openjdk.java.net/?repo=jdk=7656=01-02 Stats: 11 lines in 1 file changed: 7 ins; 0 del; 4 mod Patch: https://git.openjdk.java.net/jdk/pull/7656.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/7656/head:pull/7656 PR: https://git.openjdk.java.net/jdk/pull/7656
Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags [v2]
> Currently the only other option for manually configuring the build platform > while cross compiling are devkits, which don't work on certain systems and > are also more focused on differentiating the build and target compilers > instead. This patch adds the ability to explicitly set the build platform > through a new option, which can be especially helpful for when autodetection > fails and devkits cannot be relied on, and also for simpler cross compilation > cases (Like the one described in building.md) > > This also removes support for the legacy cross compilation flags as well. > > WIP: Translation from markdown to html Julian Waters has updated the pull request incrementally with one additional commit since the last revision: Adopt better solution for processing provided flags - Changes: - all: https://git.openjdk.java.net/jdk/pull/7656/files - new: https://git.openjdk.java.net/jdk/pull/7656/files/7082b8ba..d523d495 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk=7656=01 - incr: https://webrevs.openjdk.java.net/?repo=jdk=7656=00-01 Stats: 33 lines in 1 file changed: 3 ins; 15 del; 15 mod Patch: https://git.openjdk.java.net/jdk/pull/7656.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/7656/head:pull/7656 PR: https://git.openjdk.java.net/jdk/pull/7656
Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags
On Wed, 2 Mar 2022 08:11:51 GMT, TheShermanTanker wrote: > Currently the only other option for manually configuring the build platform > while cross compiling are devkits, which don't work on certain systems and > are also more focused on differentiating the build and target compilers > instead. This patch adds the ability to explicitly set the build platform > through a new option, which can be especially helpful for when autodetection > fails and devkits cannot be relied on, and also for simpler cross compilation > cases (Like the one described in building.md) > > This also removes support for the legacy cross compilation flags as well. > > WIP: Translation from markdown to html Alright, it seems I may not have selected the best approach towards the issue, marking it as a draft for the time being while I communicate with the mailing list for a better solution - PR: https://git.openjdk.java.net/jdk/pull/7656
Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags
On Wed, 2 Mar 2022 08:11:51 GMT, TheShermanTanker wrote: > Currently the only other option for manually configuring the build platform > while cross compiling are devkits, which don't work on certain systems and > are also more focused on differentiating the build and target compilers > instead. This patch adds the ability to explicitly set the build platform > through a new option, which can be especially helpful for when autodetection > fails and devkits cannot be relied on, and also for simpler cross compilation > cases (Like the one described in building.md) > > This also removes support for the legacy cross compilation flags as well. > > WIP: Translation from markdown to html As Thomas says, it would have been much better if you raised the issue on the build-dev mailing list first. This does not seem to be the right way to resolve your problem. I have several objections to this PR. There is no need to remove support for the traditional autoconf arguments. Sure, it's confusing and does not match our build model, but we don't know who are actually using it out in the wild nevertheless. We have the functionality. Don't remove it. If we are to add a new argument to configure to specify the build platform, it should align with existing terminology. Just as --openjdk-target matches the OPENJDK_TARGET_* variables, so should a new argument match the OPENJDK_BUILD_* variables. That is, it should be named --openjdk-build. That said, I'm not even sure we *need* a new argument. If I understand you correctly, all you want to do is to be able to set --openjdk-target *and* use the traditional autoconf --build at the same time, right? We're currently blocking this since it was assumed users were doing something wrong, but there might be good reasons for doing this. And finally, changes in building.md should reflect the current line length of 80. And any changes needs to be updated into building.html (by running `make update-build-docs` with a proper version of pandoc). But once again, I don't think the current approach is a good one. - Changes requested by ihse (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/7656
Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags
On Wed, 2 Mar 2022 08:33:58 GMT, TheShermanTanker wrote: > > > This also removes support for the legacy cross compilation flags as well. > > > > > > Hi, > > without reading through building.md and your patch, which legacy flags are > > would be removed by this? > > Thanks, Thomas > > Specifically the flags that are checked if openjdk-target is specified, in > make/autoconf/configure (Essentially just passing --build, --host and > --target directly to configure, something which is largely discouraged within > the JDK): > > ``` > if test "x$conf_legacy_crosscompile" != "x"; then > if test "x$conf_openjdk_target" != "x"; then > echo "Error: Specifying --openjdk-target together with autoconf" > echo "legacy cross-compilation flags is not supported." > echo "You specified: --openjdk-target=$conf_openjdk_target and > $conf_legacy_crosscompile." > echo "The recommended use is just --openjdk-target." > exit 1 > else > echo "Warning: You are using legacy autoconf cross-compilation flags." > echo "It is recommended that you use --openjdk-target instead." > echo "" > fi > fi > ``` Okay, thank you for explaining. I cannot comment on those since I don't use them. > > > Oh, and please describe whatever you do in the JBS issue. It's completely > > blank. It would be nice if it contained a description of what you do, at > > least as good as the PR text. Thank you! > > Will do, thanks for the heads up! Sure :) For most of us, JBS is the main source of information and archiving, so we try to keep its content high quality. I usually beef out the JBS issue text first and just paste that one verbatim into the PR description for the convenience of reviewers. Did you discuss this first on the build-dev mailing list? I may have missed this discussion. If not, this is often a good first step, especially seeing that you are new. It prevents frustration later, e.g. when you code in the wrong direction. Another small tip is to use draft PRs. Especially with build changes, it makes sense to create the PR as Draft, then wait for the GHAs to complete successfully on all platforms, and only then un-draft the PR. (e.g. with your patch, I see already failures on 32-bit). That prevents MLs being flooded by skara for work which is still in progress. Cheers, and welcome to the OpenJDK! ..Thomas - PR: https://git.openjdk.java.net/jdk/pull/7656
Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags
On Wed, 2 Mar 2022 08:27:19 GMT, Thomas Stuefe wrote: > > This also removes support for the legacy cross compilation flags as well. > > Hi, > > without reading through building.md and your patch, which legacy flags are > would be removed by this? > > Thanks, Thomas Specifically the flags that are checked if openjdk-target is specified, in make/autoconf/configure (Essentially just passing --build, --host and --target directly to configure, something which is largely discouraged within the JDK): if test "x$conf_legacy_crosscompile" != "x"; then if test "x$conf_openjdk_target" != "x"; then echo "Error: Specifying --openjdk-target together with autoconf" echo "legacy cross-compilation flags is not supported." echo "You specified: --openjdk-target=$conf_openjdk_target and $conf_legacy_crosscompile." echo "The recommended use is just --openjdk-target." exit 1 else echo "Warning: You are using legacy autoconf cross-compilation flags." echo "It is recommended that you use --openjdk-target instead." echo "" fi fi > Oh, and please describe whatever you do in the JBS issue. It's completely > blank. It would be nice if it contained a description of what you do, at > least as good as the PR text. Thank you! Will do, thanks for the heads up! - PR: https://git.openjdk.java.net/jdk/pull/7656
Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags
On Wed, 2 Mar 2022 08:11:51 GMT, TheShermanTanker wrote: >This also removes support for the legacy cross compilation flags as well. Hi, without reading through building.md and your patch, which legacy flags are would be removed by this? Thanks, Thomas Oh, and please describe whatever you do in the JBS issue. It's completely blank. It would be nice if it contained a description of what you do, at least as good as the PR text. Thank you! - PR: https://git.openjdk.java.net/jdk/pull/7656