-
Notifications
You must be signed in to change notification settings - Fork 11
How are you producing openjdk-8u222-jvmci-19.3-b03-darwin-amd64.tar.gz? #11
Comments
Building these JVMCI JDK8 binaries is a 2 step process:
The base JDKs are produced internally using an Oracle build farm that provides all the right machines with the right OSes to satisfy the build requirements for JDK 8. The |
So what has changed is I now can't use an unmodified, already built, JDK as the base anymore? I was using the one in Ubuntu on Linux, and AdoptOpenJDK on macOS, for that before and it was working fine. It doesn't work anymore because we now need the static libraries and I need to apply patches to the base JDK before building it myself in order to get those, is that right? But I don't see this repo using those patches, or using a build from your farm, so how is it working here? And isn't Sorry for the continued questions but I can't reproduce an open source GraalVM build without binary blobs from Oracle anymore! |
In random order:
|
Right - it looks like this repo is set up to do the deploys, but then it actually fails in Travis https://travis-ci.org/graalvm/openjdk8-jvmci-builder/jobs/591209944#L1839. |
I've just pushed a change now that clarifies the current purpose of this repo. |
I wasn't able to apply those patches on top of http://hg.openjdk.java.net/jdk8u/jdk8u-dev/, tag At the moment I'm not able to build GraalVM from source without using what is effectively a closed-source binary from Oracle. Will the situation be better if I use Java 11 instead? Do we have a repository and set of patches from which I could build JDK JVMCI 11? Could that be documented if it isn't already? |
You need to apply |
JDK JVMCI 11 is built from https://github.com/graalvm/labs-openjdk-11. You should be able to work out how to build it based on |
@dougxc Can you explain more about how to build a base JDK and the
Then I got the error:
It seems that the configure file does not know the flag |
@helloguo, are you sure the patches applied cleanly? The |
BTW, if you're interested in JDK 11, there is now a build script that should make life easier. |
@gilles-duboscq Thanks for checking. I still cannot build it on my machine. Maybe there's something wrong on my machine. If possible, can you share the recipe to build JVMCI-enabled-JDK8 from source? @dougxc It would be super useful if there's a build script for JDK8. |
We have a script for building the base jdk8 and static libs but it does little more than launch a build on an internal build farm that has all the right setup for building jdk8. In terms of building a jvmci-jdk8 on top of a base jdk8 and jdk8 static libs, there's little more to it than:
After this, |
Well, it's exactly what you described above followed by |
@helloguo just in case someone's here, then the trick to avoid the the But in my case, that took me to a series of errors saying
My gut tells me that I need to provide dependencies like zlib as .a static lib. (Will try to remember to update here if that's the case). |
I got the same ZIP file opening error with GLIBC 2.5. The following flags are removed when linking
Then the function Unfortunately, in GLIBC 2.25, there is a new function The dynamic linker will use the definition of |
I know the original issue is about darwin but here's what i do for Linux. This is an example using Oracle Linux 7. I would recommend to use something from the OL6 or 7 era to get an older glib and thus better compatibility.
Get an OpenJDK8 forest, then:
I get the best results with:
If you run into warnings while building (this can happen depending on the version of your c/c++ toolchain), you might want to configure with
Note: use the same configure arguments as for the base JDK build, just adding
This will get you a base JDK with no JVMCI support.
Clone graal-jvmci-8, put
|
@gilles-duboscq Thanks a lot for providing this detailed information! Just want to confirm, when you say "Get an OpenJDK8 forest", you mean the OpenJDK8 source code with patches (top.patch and jdk.patch) applied, right? Does the above link of patches still work for the newer version of OpenJDK8 (e.g. jdk8u272-b10)? If not, where can I find the right patches? Or is there any repo that contains OpenJDK8 source code with patches applied? |
The latest patches are now here: https://github.com/graalvm/graal-jvmci-8/tree/master/patches |
I don't understand how you're producing for example
openjdk-8u222-jvmci-19.3-b03-darwin-amd64.tar.gz
.I can't find a build script for it in this repo.
When I try to do the obvious thing and build
graal-jvmci-8
with a bootstrap Java 8 I don't get theContents/Home/jre/lib/*.a
files that SVM needs now. That's trying with both AdoptOpenJDK and Oracle JDK (but that's8u221
, so I'm even more confused.)Can you share how you're managing to build
graal-jvmci-8
and get.a
files?Things I don't understand:
.a
files and whatever your using does?graal-jvmci-8
a full JVM? Why doesn't it produce the.a
files?The text was updated successfully, but these errors were encountered: