Re: RFR: JDK-8282532: Add option to explicitly set build platform and remove support for legacy cross compilation flags [v4]

2022-03-03 Thread Julian Waters
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]

2022-03-03 Thread Julian Waters
> 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]

2022-03-02 Thread Julian Waters
> 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]

2022-03-02 Thread Julian Waters
> 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

2022-03-02 Thread TheShermanTanker
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

2022-03-02 Thread Magnus Ihse Bursie
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

2022-03-02 Thread Thomas Stuefe
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

2022-03-02 Thread TheShermanTanker
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

2022-03-02 Thread Thomas Stuefe
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