[13] RFR (S): 8217404: --with-jvm-features doesn't work when multiple features are explicitly disabled
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Mon Jan 21 10:00:59 UTC 2019
On 2019-01-20 09:45, Kim Barrett wrote:
>> On Jan 18, 2019, at 7:31 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
>>
>> Thanks, Vladimir.
>>
>>> I usually used --with-jvm-features=-aot,-jvmci,-graal
>>> Did not work in this case too?
>> I didn't know it supports comma-separated list, but it doesn't work as well:
>>
>> $ bash configure --with-jvm-features="-aot,-jvmci,-graal"
>>
>> checking if jvmci module jdk.internal.vm.ci should be built... yes
>> checking if graal module jdk.internal.vm.compiler should be built... yes
>> checking if aot should be enabled… yes
> Isn’t the problem here simply incorrect syntax in that command line?
>
> Drop the quotes around the —with-jvm-features argument and I think it should work fine.
Let me bring some clarity in the syntax here.
For --with-jvm-features, if you want to list multiple features, you can
separate them by either space or comma. Both are valid and officially
supported. My recommendation, though, is to use comma, to avoid the
problem with spaces in command line options.
If you want to use spaces, you *must* use quotes. A command line like:
bash configure --with-jvm-features=-aot -jvmci
would be interpreted as "-jvmci" was a flag for configure, which it is not.
There are multiple ways of quoting, you could use ' or ", and include
the flag name like "--with-jvm-features=aot graal", or just the argument
list. My preference, if I need to use quotes, is to use the style
Vladimir uses in his example; I believe that maximizes readability. But,
as I said, for --with-jvm-features, I recommend using comma instead, to
avoid the quoting issue completely.
Internally, the list of enabled/disabled features are treated as lists
of space-separated words; but that is an implementation detail and not
part of the command-line interface.
/Magnus
More information about the build-dev
mailing list