Tip of Graal broken with tip of OpenJDK?

Doug Simon doug.simon at oracle.com
Thu Mar 22 09:11:48 UTC 2018


Fix is now merged: https://github.com/oracle/graal/commit/56c5c4cebc277ca993095e1ba8fdf2510e1f7ee1

> On 21 Mar 2018, at 16:06, stewartd.qdt <stewartd.qdt at qualcommdatacenter.com> wrote:
> 
> Thanks! I'll apply this in the short term. Good to know a fix is already in the works. 
> 
> -----Original Message-----
> From: Doug Simon [mailto:doug.simon at oracle.com] 
> Sent: Wednesday, March 21, 2018 11:01 AM
> To: stewartd.qdt <stewartd.qdt at qualcommdatacenter.com>
> Cc: graal-dev at openjdk.java.net
> Subject: Re: Tip of Graal broken with tip of OpenJDK?
> 
> Sorry, that was my fault.
> 
> A fix is making its way through our internal gates. Here's the patch if you want to apply it locally:
> 
> diff --git a/compiler/src/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java b/compiler/src/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java
> index 175db95863..1268f4a429 100644
> --- a/compiler/src/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java
> +++ b/compiler/src/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java
> @@ -24,6 +24,7 @@ package org.graalvm.compiler.serviceprovider;
> 
> import java.io.IOException;
> import java.io.InputStream;
> +import java.lang.reflect.Method;
> import java.util.Iterator;
> import java.util.ServiceConfigurationError;
> 
> @@ -63,11 +64,25 @@ public final class GraalServices {
>      * @throws SecurityException if on JDK8 and a security manager is present and it denies
>      *             {@link JVMCIPermission}
>      */
> +    @SuppressWarnings("unchecked")
>     public static <S> Iterable<S> load(Class<S> service) {
>         assert !service.getName().startsWith("jdk.vm.ci") : "JVMCI services must be loaded via " + Services.class.getName();
> -        return Services.load(service);
> +        try {
> +            if (loadMethod == null) {
> +                loadMethod = Services.class.getMethod("load", Class.class);
> +            }
> +            return (Iterable<S>) loadMethod.invoke(null, service);
> +        } catch (Exception e) {
> +            throw new InternalError(e);
> +        }
>     }
> 
> +    /**
> +     * {@code Services.load(Class)} is only defined in JVMCI-8 so we use reflection to simplify
> +     * compiling with javac on JDK 9 or later.
> +     */
> +    private static volatile Method loadMethod;
> +
>     /**
>      * Gets the provider for a given service for which at most one provider must be available.
>      *
> 
>> On 21 Mar 2018, at 15:42, stewartd.qdt <stewartd.qdt at qualcommdatacenter.com> wrote:
>> 
>> After sync'ing to the tip of both Graal and OpenJDK, I get an error building Graal. I get the following error:
>> 
>> Compiling com.oracle.truffle.api.dsl with javac-daemon... [/home/stewartd/openjdk/stewartd-graal/truffle/mxbuild/src/com.oracle.truffle.api.dsl/bin/META-INF/upgrade/truffle.api.dsl.Specialization.hint[2018-03-19 14:49:11] is older than /home/stewartd/openjdk/stewartd-graal/truffle/mxbuild/src/com.oracle.truffle.api/bin/com/oracle/truffle/api/nodes/NodeUtil.class[2018-03-21 14:23:27]]
>> /home/stewartd/openjdk/stewartd-graal/compiler/src/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java:68: error: cannot find symbol
>>       return Services.load(service);
>>                      ^
>> symbol:   method load(Class<S>)
>> location: class Services
>> where S is a type-variable:
>>   S extends Object declared in method <S>load(Class<S>)
>> 1 error
>> 
>> I believe it was caused by this commit: https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_graal_commit_a0a2d08f84ca5b78a8b880313a1082cc392c167a&d=DwIFAg&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=BmNY5KuefACTr_P43s8fXOXgNDkDiqlviyafeiVaP18&m=AKKIEb8DGWGv3KgInxmtWThq68aqKvSGokdcx2lszrU&s=v82FYdhLenb0gpMOb2EYVGE8mF-JMvI2iCajcelnmBY&e=
>> 
>> Is this supposed to work with the tip of OpenJDK or only OpenJDK 8?
>> 
>> Thanks,
>> Daniel



More information about the graal-dev mailing list