RFR: JDK-8282700: Properly handle several --without options during configure [v2]

Magnus Ihse Bursie ihse at openjdk.java.net
Mon Mar 7 19:56:58 UTC 2022


On Mon, 7 Mar 2022 13:57:42 GMT, Erik Joelsson <erikj at openjdk.org> wrote:

>> Julian Waters has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Handle remaining options and change critical options to error when --without is passed
>
> make/autoconf/jdk-version.m4 line 113:
> 
>> 111:     AC_MSG_ERROR([--with-vendor-name must have a value])
>> 112:   elif test "x$with_vendor_name" = xno; then
>> 113:     AC_MSG_WARN([--without-vendor-name is the same as not passing --with-vendor-name to begin with])
> 
> I don't think this warrants a warning. The user is just trying to be explicit. It's good to handle the "no" case though.

The entire semantics of the `--without-X` flags in configure is a bit unclear. If someone where to actually give `--without-vendor-name`, what would they suppose should happen? If it is left unspecified, the default value `N/A` is taken from branding.conf. But when setting `--without-vendor-name`, do you mean that you explicitly want the `N/A` value? Or do you mean that you want the build to not use a vendor name at all? In the latter case, that is not possible. And if we make that interpretation, this should not be a warning, but an error.

To me it feel strange to set `--without-vendor-name` and assume that means "use the default value". I'd rather go with the interpretation that this is a misunderstanding of how the option works, and emit an error. 

Do you want to

> make/autoconf/jdk-version.m4 line 129:
> 
>> 127:     AC_MSG_ERROR([--with-vendor-url must have a value])
>> 128:   elif test "x$with_vendor_url" = xno; then
>> 129:     AC_MSG_WARN([--without-vendor-url is the same as not passing --with-vendor-url to begin with])
> 
> Same as with vendor.

I think this, even more, makes it clear that `--without-vendor-url` can´t possible be meant to be interpreted as "use https://openjdk.java.net/". 

Basically, I think what I'm arguing for is that we can fold this check into the "yes" check -- both `--with-vendor-url` (with no given value) and `--without-vendor-url` are invalid. So something like this:


 if test "x$with_vendor_url" = xyes || test "x$with_vendor_url" = xno; then
    AC_MSG_ERROR([--with-vendor-url must have a value])
  elif...

-------------

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



More information about the build-dev mailing list