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