jlink error when building jextract on macOS for JDK 21

Jorn Vernee jorn.vernee at oracle.com
Tue Jul 25 20:22:39 UTC 2023


Hey Manuel,

This looks like a strange error. I do not recognize it. The jawt header 
files are from java.desktop, and the jaxp.properties file is from 
java.xml. So, they should not be in jdk.compiler and jdk.internal.opt

If you list the contents of the jdk.compiler and jdk.internal.opt jmod 
files (using jmod list), are these resources listed?

Jorn

On 25/07/2023 21:44, Manuel Bleichenbacher wrote:
> As part of upgrading https://github.com/manuelbl/JavaDoesUSB to JDK 
> 21, I'm building jextract for JDK 21. It works without issue on Linux 
> and Windows. But on macOS it fails with this error message:
>
> *> Task :createJextractImage* FAILED
>
> Error: jdk.tools.jlink.plugin.PluginException: Duplicate resources: 
> {include/darwin/jawt_md.h=[jdk.compiler, jdk.internal.opt], 
> conf/jaxp.properties=[jdk.compiler, jdk.internal.opt], 
> include/jawt.h=[jdk.compiler, jdk.internal.opt]}
>
>
> From my limited understanding of jlink, I think one of the explicitly 
> specified modules has a transitive dependency to the module 
> "jdk.internal.opt", so it's included as well. But the modules 
> "jdk.compiler" and "jdk.internal.opt" have three common files, which 
> are now in conflict.
>
> Is this a known issue? Is there a workaround?
>
> My environment is:
> - JDK for gradle: openjdk version "17.0.1" 2021-10-19 LTS
> - JDK 21: OpenJDK 64-Bit Server VM Zulu21+69-CA (build 21-ea+28, mixed 
> mode, sharing)
> - jextract: head of "jdk21" branch
> - Command line: sh ./gradlew 
> -Pjdk21_home=/Users/me/Documents/zulu21.0.69-ea-jdk21.0.0-ea.28-macosx_aarch64 
> -Pllvm_home=/Library/Developer/CommandLineTools/usr/ clean verify
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jextract-dev/attachments/20230725/8c4c25f0/attachment.htm>


More information about the jextract-dev mailing list