RFR: 8211740 - [AOT] -XX:AOTLibrary doesn't accept windows path
Igor Ignatyev
igor.ignatyev at oracle.com
Mon Oct 15 21:36:16 UTC 2018
Hi Bob,
the fix looks good to me.
Thanks,
-- Igor
> On Oct 15, 2018, at 1:48 PM, Bob Vandette <bob.vandette at oracle.com> wrote:
>
> Please review this fix for accepting the option —XX:AOTLibrary on Windows that contains fully specified paths.
>
> Please note: The fact that we are using “.so” for windows libraries is a known, filed issue that
> was deferred.
>
> Bob.
>
>
> diff --git a/src/hotspot/share/aot/aotLoader.cpp b/src/hotspot/share/aot/aotLoader.cpp
> --- a/src/hotspot/share/aot/aotLoader.cpp
> +++ b/src/hotspot/share/aot/aotLoader.cpp
> @@ -137,6 +137,12 @@
> return;
> }
>
> +#ifdef _WINDOWS
> + const char pathSep = ';';
> +#else
> + const char pathSep = ':';
> +#endif
> +
> // Scan the AOTLibrary option.
> if (AOTLibrary != NULL) {
> const int len = (int)strlen(AOTLibrary);
> @@ -147,7 +153,7 @@
> char* end = cp + len;
> while (cp < end) {
> const char* name = cp;
> - while ((*cp) != '\0' && (*cp) != '\n' && (*cp) != ',' && (*cp) != ':' && (*cp) != ';') cp++;
> + while ((*cp) != '\0' && (*cp) != '\n' && (*cp) != ',' && (*cp) != pathSep) cp++;
> cp[0] = '\0'; // Terminate name
> cp++;
> load_library(name, true);
>
> diff --git a/test/hotspot/jtreg/compiler/aot/cli/MultipleAOTLibraryTest.java b/test/hotspot/jtreg/compiler/aot/cli/MultipleAOTLibraryTest.java
> --- a/test/hotspot/jtreg/compiler/aot/cli/MultipleAOTLibraryTest.java
> +++ b/test/hotspot/jtreg/compiler/aot/cli/MultipleAOTLibraryTest.java
> @@ -54,6 +54,7 @@
> package compiler.aot.cli;
>
> import compiler.aot.HelloWorldPrinter;
> +import java.io.File;
> import java.util.Arrays;
> import jdk.test.lib.process.ExitCode;
> import jdk.test.lib.cli.CommandLineOptionTest;
> @@ -75,8 +76,11 @@
> boolean addTestVMOptions = true;
> String[] allArgs = Arrays.copyOf(args, args.length + 4);
> allArgs[args.length] = "-XX:AOTLibrary="
> - + "./libMultipleAOTLibraryTest1.so:"
> - + "./libMultipleAOTLibraryTest2.so";
> + + "." + File.separator
> + + "libMultipleAOTLibraryTest1.so"
> + + File.pathSeparator
> + + "." + File.separator
> + + "libMultipleAOTLibraryTest2.so";
> allArgs[args.length + 1] = "-XX:+PrintAOT";
> allArgs[args.length + 2] = "-XX:+UseAOT";
> allArgs[args.length + 3] = HelloWorldPrinter.class.getName();
More information about the hotspot-compiler-dev
mailing list