Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GR-48144] Fix native-image build with --no-jlinking #7205

Merged
merged 3 commits into from
Oct 27, 2023

Conversation

jerboaa
Copy link
Collaborator

@jerboaa jerboaa commented Aug 14, 2023

In #7171 graal-sdk got split into several parts. This patch accounts for that and adds
the new dependencies to the module path when the JDKs jimage is being queried for built-in modules.

--add-modules org.graalvm.polyglot has been dropped from the native-image launcher. It
gets added to the module path on demand if needed.

Closes #7085

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Aug 14, 2023
@jerboaa jerboaa requested review from olpaw, chumer and zakkak August 14, 2023 10:38
Copy link
Collaborator

@zakkak zakkak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jerboaa I was able to get rid of the polyglot.jar and truffle-api.jar in the launcher with zakkak@85088b1 (on top of your branch)

To test it I used:

~/code/mx/mx --primary-suite vm --no-jlinking --env ce build

which is supposed to build GraalVM CE (including polyglot and truffle):

❯ ~/code/mx/mx --primary-suite vm --no-jlinking --env ce graalvm-show             
GraalVM distribution: GRAALVM_COMMUNITY_JAVA21
Version: 23.1.0-dev
Config name: community
Components:
 - GraalVM compiler ('cmp', /graal, experimental)
 - GraalVM Coverage ('cov', /coverage, experimental)
 - GraalVM Debug Protocol Server ('dap', /dap, experimental)
 - Component installer ('gu', /installer, experimental)
 - GraalVM license files ('gvm', /., experimental)
 - GraalVM Chrome Inspector ('ins', /chromeinspector, experimental)
 - Insight ('insight', /insight, experimental)
 - Insight Heap ('insightheap', /insightheap, experimental)
 - LibGraal ('lg', /False, experimental)
 - GraalVM Language Server ('lsp', /lsp, experimental)
 - Truffle NFI LIBFFI ('nfi-libffi', /nfi, experimental)
 - Native Image ('ni', /svm, experimental)
 - Native Image Configure Tool ('nic', /svm, experimental)
 - Native Image licence files ('nil', /svm, experimental)
 - Polyglot Launcher ('poly', /polyglot, experimental)
 - Polyglot Native API ('polynative', /polyglot, experimental)
 - GraalVM Profiler ('pro', /profiler, experimental)
 - Graal SDK ('sdk', /graalvm, experimental)
 - GraalVM Launcher Common ('sdkl', /graalvm, experimental)
 - SubstrateVM ('svm', /svm, experimental)
 - Truffle Runtime SVM ('svmt', /truffle, experimental)
 - SVM Truffle NFI Support ('svmnfi', /nfi, experimental)
 - SubstrateVM Static Libraries ('svmsl', /False, experimental)
 - Truffle ('tfl', /truffle, experimental)
 - Truffle API ('tfla', /truffle, experimental)
 - Truffle Compiler ('tflc', /truffle, experimental)
 - Truffle Macro ('tflm', /truffle, experimental)
 - Truffle JSON Library ('truffle-json', /truffle-json, experimental)
 - Graal SDK Compiler ('sdkc', /graalvm, experimental)
 - Truffle NFI ('nfi', /nfi, experimental)
 - SubstrateVM Foreign API Preview Feature ('svmforeign', /svm-preview, experimental)
 - Graal SDK Native Image ('sdkni', /graalvm, experimental)
 - Polyglot Library ('libpoly', /polyglot, experimental)
Launchers:
 - gu (bash, rebuildable)
 - native-image (native, rebuildable)
 - native-image-configure (bash, rebuildable)
 - polyglot (bash, rebuildable)
Libraries:
 - libjvmcicompiler.so (native, non-rebuildable)
 - libnative-image-agent.so (native, rebuildable)
 - libnative-image-diagnostics-agent.so (native, rebuildable)
 - libpolyglot.so (skipped, rebuildable)
Installables:
 - NATIVE_IMAGE_INSTALLABLE_SVM_JAVA21
No standalone

Please have a look.

@jerboaa
Copy link
Collaborator Author

jerboaa commented Aug 17, 2023

Fantastic! Let me merge that in and I'll test myself as well.

@jerboaa jerboaa force-pushed the no-jlinking-fixes-7085 branch from accb9ef to 70bb6a9 Compare August 17, 2023 12:25
@jerboaa
Copy link
Collaborator Author

jerboaa commented Aug 17, 2023

Thanks @zakkak for that update. It's now included.

@olpaw @chumer @fniephaus Could you please help get this reviewed, as this is needed to get Mandrel 23.1 builds working again (broken for 2 weeks now). Thank you!

@jerboaa jerboaa force-pushed the no-jlinking-fixes-7085 branch from 70bb6a9 to 4af2a84 Compare August 17, 2023 12:40
@jerboaa
Copy link
Collaborator Author

jerboaa commented Aug 17, 2023

Thanks for the review, @olpaw! Please take another look.

@olpaw olpaw self-requested a review August 21, 2023 07:49
Copy link
Member

@olpaw olpaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes look good now. But there is still a failing gate.

@jerboaa
Copy link
Collaborator Author

jerboaa commented Aug 21, 2023

The changes look good now. But there is still a failing gate.

@olpaw The gate failures seem to be caused by passing in -XX:StartFlightRecording=dumponexit=true to the native-image command, which results in the java --list-modules call to have that option too. The failing command is:

/disk/graal/upstream-sources/graal/sdk/mxbuild/linux-amd64/GRAALVM_5852D06D07_JAVA21/graalvm-5852d06d07-java21-23.1.0-dev/bin/native-image --dry-run --verbose --no-fallback -H:+UnlockExperimentalVMOptions -H:+EnforceMaxRuntimeCompileMethods -H:+ReportExceptionStackTraces -H:Path=/disk/graal/upstream-sources/graal/substratevm/svmbuild -H:-UnlockExperimentalVMOptions --verbose -J-ea -J-esa --native-image-info -o /disk/graal/upstream-sources/graal/substratevm/svmbuild/helloworld -H:+UnlockExperimentalVMOptions -H:+VerifyNamingConventions -H:-UnlockExperimentalVMOptions -cp /disk/graal/upstream-sources/graal/substratevm/svmbuild HelloWorld -J-XX:StartFlightRecording=dumponexit=true -Dllvm.bin.dir=/disk/graal/upstream-sources/graal/sdk/mxbuild/linux-amd64/LLVM_TOOLCHAIN/bin/
Apply jar:file:///disk/graal/upstream-sources/graal/sdk/mxbuild/linux-amd64/GRAALVM_5852D06D07_JAVA21/graalvm-5852d06d07-java21-23.1.0-dev/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties
Apply jar:file:///disk/graal/upstream-sources/graal/sdk/mxbuild/linux-amd64/GRAALVM_5852D06D07_JAVA21/graalvm-5852d06d07-java21-23.1.0-dev/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties
Exception in thread "main" java.lang.IllegalArgumentException: Missing scheme
	at java.base/java.nio.file.Path.of(Path.java:200)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.callListModules(NativeImage.java:1688)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.listModulesFromPath(NativeImage.java:1652)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.buildImage(NativeImage.java:1516)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.completeImageBuild(NativeImage.java:1263)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.build(NativeImage.java:1839)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.performBuild(NativeImage.java:1804)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.main(NativeImage.java:1778)

When I add -XX:StartFlightRecording=dumponexit=true option to --list-modules, there is unified logging output from jfr+startup which is what --list-modules parsing throws off. Example:

$ java -XX:StartFlightRecording=dumponexit=true --list-modules
[0.365s][info][jfr,startup] Started recording 1. No limit specified, using maxsize=250MB as default.
[0.365s][info][jfr,startup] 
[0.365s][info][jfr,startup] Use jcmd 81612 JFR.dump name=1 filename=FILEPATH to copy recording data to file.
com.oracle.graal.graal_enterprise
com.oracle.svm.enterprise.truffle
com.oracle.svm.extraimage_enterprise
com.oracle.svm.svm_enterprise
com.oracle.svm_enterprise.ml_dataset
com.oracle.truffle.enterprise
com.oracle.truffle.enterprise.svm
java.base@21
java.compiler@21
java.datatransfer@21
java.desktop@21
java.instrument@21
java.logging@21
java.management@21
java.management.rmi@21
java.naming@21
java.net.http@21
java.prefs@21
java.rmi@21
java.scripting@21
java.se@21
java.security.jgss@21
java.security.sasl@21
java.smartcardio@21
java.sql@21
java.sql.rowset@21
java.transaction.xa@21
java.xml@21
java.xml.crypto@21
jdk.accessibility@21
jdk.attach@21
jdk.charsets@21
jdk.compiler@21
jdk.crypto.cryptoki@21
jdk.crypto.ec@21
jdk.dynalink@21
jdk.editpad@21
jdk.hotspot.agent@21
jdk.httpserver@21
jdk.incubator.vector@21
jdk.internal.ed@21
jdk.internal.jvmstat@21
jdk.internal.le@21
jdk.internal.opt@21
jdk.internal.vm.ci@21
jdk.internal.vm.compiler
jdk.internal.vm.compiler.management
jdk.jartool@21
jdk.javadoc@21
jdk.jcmd@21
jdk.jconsole@21
jdk.jdeps@21
jdk.jdi@21
jdk.jdwp.agent@21
jdk.jfr@21
jdk.jlink@21
jdk.jpackage@21
jdk.jshell@21
jdk.jsobject@21
jdk.jstatd@21
jdk.localedata@21
jdk.management@21
jdk.management.agent@21
jdk.management.jfr@21
jdk.naming.dns@21
jdk.naming.rmi@21
jdk.net@21
jdk.nio.mapmode@21
jdk.random@21
jdk.sctp@21
jdk.security.auth@21
jdk.security.jgss@21
jdk.unsupported@21
jdk.unsupported.desktop@21
jdk.xml.dom@21
jdk.zipfs@21
org.graalvm.collections
org.graalvm.extraimage.builder
org.graalvm.jniutils
org.graalvm.locator
org.graalvm.nativeimage
org.graalvm.polyglot
org.graalvm.sdk
org.graalvm.truffle
org.graalvm.truffle.compiler
org.graalvm.truffle.runtime
org.graalvm.word

This didn't fail with the earlier patch as not all options got passed whole-sale to the list-modules call. So there are a couple of options how to fix it:

  1. Silence unified logging for the -XX:StartFlightRecording=dumponexit=true test with -Xlog:jfr\*=off
  2. Go back to the previous version of the patch (only passing --upgrade-module option when needed)
  3. Fix callListModules routine to ignore such unexpected output.

Which one should it be?

@olpaw
Copy link
Member

olpaw commented Aug 21, 2023

  1. Silence unified logging for the -XX:StartFlightRecording=dumponexit=true test with -Xlog:jfr*=off
  2. Go back to the previous version of the patch (only passing --upgrade-module option when needed)
  3. Fix callListModules routine to ignore such unexpected output.
    Which one should it be?

Please go for 3.

IMO, 2. is not an option because there might be javaArgs used by the builder that influence the output of --list-modules. E.g. --patch-module, --enable-preview ... we want our --list-modules query to run in the same JVM context that be builder is also running afterwards.

@olpaw olpaw requested a review from fniephaus August 21, 2023 10:58
@jerboaa
Copy link
Collaborator Author

jerboaa commented Aug 21, 2023

OK, glad we came to the same conclusion. Testing that update right now.

@olpaw olpaw changed the title Fix native-image build with --no-jlinking [GR-48144] Fix native-image build with --no-jlinking Aug 21, 2023
@olpaw
Copy link
Member

olpaw commented Aug 21, 2023

Running in internal CI ... ⏳

@jerboaa
Copy link
Collaborator Author

jerboaa commented Aug 22, 2023

Thanks for the review! Let me know if there is anything more that you need from my end.

@olpaw
Copy link
Member

olpaw commented Aug 22, 2023

Running in internal CI ... ⏳

This found issues with the current approach.

We are regressing on

mx helloworld -J--limit-modules=org.graalvm.nativeimage.builder

On master this works fine but on this PR we get:

========================================================================================================================
GraalVM Native Image: Generating 'helloworld' (executable)...
========================================================================================================================
[1/8] Initializing...
                                                                                    (0.0s @ 0.08GB)
Error: Feature com.oracle.svm.thirdparty.gson.GsonFeature class not found on the classpath. Ensure that the name is correct and that the class is on the classpath.
com.oracle.svm.core.util.UserError$UserException: Feature com.oracle.svm.thirdparty.gson.GsonFeature class not found on the classpath. Ensure that the name is correct and that the class is on the classpath.
	at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.UserError.abort(UserError.java:73)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.FeatureHandler.registerFeatures(FeatureHandler.java:183)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:897)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:591)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:551)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:528)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:710)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:142)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:97)
------------------------------------------------------------------------------------------------------------------------
                         0.1s (5.3% of total time) in 6 GCs | Peak RSS: 0.47GB | CPU load: 5.73
========================================================================================================================
Finished generating 'helloworld' in 0.9s.

The reason is that the -J--limit-modules=org.graalvm.nativeimage.builder constrains the builder down to the transitive closure of the module org.graalvm.nativeimage.builder (itself + all modules it depends on).

But luckily we do have our --list-modules option implemented in the builder. So instead of using the --list-modules option implemented in java use our version, then -J--limit-modules=org.graalvm.nativeimage.builder cannot hurt the org.graalvm.nativeimage.librarysupport module the the builder requires (it contains that com.oracle.svm.thirdparty.gson.GsonFeature). Run

mx native-image -J--limit-modules=org.graalvm.nativeimage.builder --list-modules

to see what I mean (and compare it to the output of callListModules.

@jerboaa
Copy link
Collaborator Author

jerboaa commented Aug 22, 2023

Thanks for the update. I'll look into it.

@jerboaa
Copy link
Collaborator Author

jerboaa commented Sep 7, 2023

@olpaw Gentle ping on as to how to move forward with this for 24.0.

@olpaw
Copy link
Member

olpaw commented Sep 11, 2023

@olpaw Gentle ping on as to how to move forward with this for 24.0.

I'm playing with using jdk.internal.jimage.ImageReader and java.lang.module.ModuleFinder. If all goes well there will be no extra JVM execution to query what we need to know about modules before calling the builder to build the image.

@jerboaa
Copy link
Collaborator Author

jerboaa commented Oct 4, 2023

Status update: This is waiting on #7454 to merge and the fixes for the --no-jlinking case should then be fairly straight forward. No need for the list modules gymnastics any more since it'll be gone with #7454

@jerboaa jerboaa force-pushed the no-jlinking-fixes-7085 branch from ece06b7 to 261dd42 Compare October 13, 2023 09:59
@jerboaa
Copy link
Collaborator Author

jerboaa commented Oct 13, 2023

#7454 is merged now, so I've updated the PR to fix the --no-jlinking build use-case that is being used by Mandrel builds.

@olpaw Please take another look. Thanks!

@olpaw
Copy link
Member

olpaw commented Oct 16, 2023

Thanks! I will take a look in the next days.

Copy link
Member

@fniephaus fniephaus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@olpaw
Copy link
Member

olpaw commented Oct 17, 2023

All our internal CI gates passed with this change. I'm now just waiting for @chumer to respond to #7205 (comment)

@jerboaa
Copy link
Collaborator Author

jerboaa commented Oct 17, 2023

All our internal CI gates passed with this change. I'm now just waiting for @chumer to respond to #7205 (comment)

Thanks for the update!

@jerboaa
Copy link
Collaborator Author

jerboaa commented Oct 19, 2023

@chumer Could you please take another look? Does the latest update address your concerns? Thanks in advance!

@jerboaa
Copy link
Collaborator Author

jerboaa commented Oct 23, 2023

Is there something missing for this PR to get merged? If so, please let me know. Thanks!

@olpaw
Copy link
Member

olpaw commented Oct 23, 2023

Is there something missing for this PR to get merged? If so, please let me know. Thanks!

Still waiting for @chumer to respond to #7205 (comment)

If there is no further feedback by the end of the week I will merge the PR as is.

@jerboaa
Copy link
Collaborator Author

jerboaa commented Oct 23, 2023

Is there something missing for this PR to get merged? If so, please let me know. Thanks!

Still waiting for @chumer to respond to #7205 (comment)

If there is no further feedback by the end of the week I will merge the PR as is.

Thank you!

@@ -574,19 +576,37 @@ public List<Path> getBuilderModulePath() {
}

private List<Path> createTruffleBuilderModulePath() {
List<Path> jars = getJars(rootDir.resolve(Paths.get("lib", "truffle")), "truffle-api", "truffle-runtime", "truffle-enterprise");
Path libTruffleDir = rootDir.resolve(Paths.get("lib", "truffle"));
List<Path> jars = getJars(libTruffleDir, "truffle-api", "truffle-runtime", "truffle-enterprise");
if (!jars.isEmpty()) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This branch should never be triggered >= 23.1. This is only here to support builds where truffle is still living in a GraalVM JDK. How come this triggers for you? What component configuration are you using?
After 23.1 you should use a configuration like this: https://github.com/oracle/graal/blob/master/vm/mx.vm/ce#L2

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chumer these changes were introduced by me in zakkak@85088b1

As I explain in #7205 (review) (back then) these changes allowed me to build GraalVM CE with --no-jlinking using:

~/code/mx/mx --primary-suite vm --no-jlinking --env ce build

Looking at the CE configuration that was used while testing the above I see more components being included which probably explains the need for these changes back then: https://github.com/zakkak/mandrel/blob/85088b19f8062246d5f0a95c83ace120ee034c25/vm/mx.vm/ce#L2

As @jerboaa said we are more than happy to drop these if they are no longer relevant.
@jerboaa let me know if you need any help with this.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't (usually) trigger for us. I think this code is pre-existing and we wanted to make sure we don't break anything when this path is being used. This code seems to account for the fact that certain (modular) jar files have dependencies. If this path is taken and a truffle-runtime-svm is in lib/truffle/builder, polyglot.jar and jniutils.jar needs to be added when the JDK isn't jlinked (and, therefore, doesn't include those modules):

$ jar -d -f sdk/mxbuild/linux-amd64/GRAALVM_COMMUNITY_JAVA22/graalvm-community-openjdk-22+17.1/lib/truffle/builder/truffle-runtime-svm.jar | grep -E 'polyglot|truffle\.runtime'
org.graalvm.truffle.runtime.svm jar:file:///disk/graal/upstream-sources/graal/sdk/mxbuild/linux-amd64/GRAALVM_COMMUNITY_JAVA22/graalvm-community-openjdk-22+17.1/lib/truffle/builder/truffle-runtime-svm.jar!/module-info.class
requires org.graalvm.polyglot transitive
requires org.graalvm.truffle.runtime static
qualified exports com.oracle.svm.truffle to com.oracle.truffle.enterprise.svm org.graalvm.truffle.runtime.svm
qualified exports com.oracle.svm.truffle.api to com.oracle.truffle.enterprise.svm org.graalvm.truffle org.graalvm.truffle.runtime.svm
qualified exports com.oracle.svm.truffle.isolated to com.oracle.truffle.enterprise.svm org.graalvm.truffle.runtime.svm
qualified exports com.oracle.svm.truffle.nfi to com.oracle.truffle.enterprise.svm org.graalvm.truffle.runtime.svm
qualified exports com.oracle.svm.truffle.nfi.libffi to com.oracle.truffle.enterprise.svm org.graalvm.truffle.runtime.svm
qualified exports com.oracle.svm.truffle.nfi.posix to com.oracle.truffle.enterprise.svm org.graalvm.truffle.runtime.svm
qualified exports com.oracle.svm.truffle.nfi.windows to com.oracle.truffle.enterprise.svm org.graalvm.truffle.runtime.svm
$ jar -d -f ./truffle/mxbuild/jdk22/dists/jdk17/truffle-runtime.jar | grep jniutils
requires org.graalvm.jniutils transitive
$ jar -d -f sdk/mxbuild/jdk22/dists/jdk17/jniutils.jar | head -n1
org.graalvm.jniutils jar:file:///disk/graal/upstream-sources/graal/sdk/mxbuild/jdk22/dists/jdk17/jniutils.jar!/module-info.class

Does that sound OK?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chumer As @zakkak said, we can drop those changes if you are happy for us to drop them. Or we can clean it up in a subsequent patch? Either way, those changes aren't important for us. The key piece is to have the native-image component build working in the --no-jlinking config.

Copy link
Member

@chumer chumer Oct 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jerboaa @zakkak Your CE env config explains why this still triggers for you. As you know, we have gone unchained and many of your CE env configuration components are about to be removed on master. I'd recommend switching to a config similar to this: https://github.com/oracle/graal/blob/master/vm/mx.vm/ce#L2
We do change these component lists whenever we need to, so I'd recommend undoing the custom changes to your env config.

Does that sound OK?

You should never need to put truffle-runtime-svm on the module-path manually in the driver after >= 23.1, as you mentioned it has further module dependencies so can only activate automatically if certain jars are put on the image module/class-path by the user. The driver no longer decides this >= 23.1, which is why I mentioned that the condition should not trigger above. If the truffle-runtime.jar gets put on the image module-path by the user the truffle-svm macro gets activated which then activates truffle-runtime-svm. truffle-runtime.jar has all the necessary dependencies and already expects them on the image module-path, so when truffle-runtime-svm gets activated through the macro all dependencies are satisfied, including polyglot.

Ultimately @olpaw is in charge of this code and needs to decide what goes in and what not. I do not know enough about --no-jlinking to judge whether these changes are justified. I know that many of your changes probably stem from an outdated/wrong environment config, and I think these changes will mostly no longer be necessary after you update the env. @olpaw should decide whether it is fine to merge this as an intermediate step top unblock you.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your input. So the the comment inside the if block is accurate: This is legacy support and should in the future no longer be needed. Question is when we remove this. @olpaw Opinions?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jerboaa your PR is already in our merge queue. Feel free to provide a cleanup PR after this one got merged that reduces the changes needed for your usecase to a minimum.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, thank you. Will do that, then.

@jerboaa
Copy link
Collaborator Author

jerboaa commented Oct 23, 2023

Thank you, @chumer for the review and approval!

@jerboaa
Copy link
Collaborator Author

jerboaa commented Oct 27, 2023

@olpaw Hi! Just checking, is this still in the merge queue?

@fniephaus
Copy link
Member

Hi! Just checking, is this still in the merge queue?

Yes, it is... it unfortunately failed due to some infra issue, but it's currently on the top again. If all goes well, it should be merged within the next couple of hours.

@jerboaa
Copy link
Collaborator Author

jerboaa commented Oct 27, 2023

If all goes well, it should be merged within the next couple of hours.

OK, thanks Fabio.

@fniephaus
Copy link
Member

Sorry, but it failed again...I hope we can resolve the infra issues very soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Verified All contributors have signed the Oracle Contributor Agreement. redhat-interest
Projects
None yet
Development

Successfully merging this pull request may close these issues.

GR-47186 "Fix native-image --add-modules" breaks --no-jlinking builds
7 participants