I've searched the web hours about my question and testing many things without finding any solution.
I have a JavaFX application handled by maven and developped under VSCode. I want it to be available as a desktop app, an Android app and a IOS app.
In order to do that, I chose to use gluonfx-maven-plugin and downloaded the corresponding graalvm version with my java version (graalvm-svm-java11-linux-gluon-22.1.0.1-Final). Nevertheless, even though gcc and ld are up to date, I encounter link issues I am unable to resolve. Would you have any idea that could help me?
[Sun Aug 14 22:38:45 CEST 2022][INFO] ==================== LINK TASK ====================
[Sun Aug 14 22:38:46 CEST 2022][INFO] [SUB] /usr/bin/ld: /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/tmp/SVM-1660509375916/menu.main.o:(.data+0x448): undefined reference to `Java_com_sun_security_auth_module_UnixSystem_getUnixInfo'
[Sun Aug 14 22:38:46 CEST 2022][INFO] [SUB] /usr/bin/ld: /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/tmp/SVM-1660509375916/menu.main.o:(.data+0xc78): undefined reference to `JNI_OnLoad_jaas'
[Sun Aug 14 22:38:46 CEST 2022][INFO] [SUB] collect2: error: ld returned 1 exit status
[Sun Aug 14 22:38:46 CEST 2022][SEVERE] Process link failed with result: 1
Check the log files under /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/log
And please check https://docs.gluonhq.com/ for more information.
[Sun Aug 14 22:38:46 CEST 2022][INFO] Logging process [link] to file: /home/lambevin/Perso/Character-creator/software/target/gluonfx/log/process-link-1660509526771.log
[Sun Aug 14 22:38:46 CEST 2022][SEVERE] Linking failed.
Check the log files under /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/log
And please check https://docs.gluonhq.com/ for more information.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
Not gluon-based graalvm installations have issues at the building phase so its even worse...
Here is my pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.gitlab.vincent-lambert</groupId>
<artifactId>Character_Creator</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>Character_Creator</name>
<description>French software to handle Twin Worlds (Mondes Jumeaux) data and create characters</description>
<url>${project.groupId}:${project.artifactId}</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>11</maven.compiler.release>
<javafx.version>18.0.2</javafx.version>
<javafx.plugin.version>0.0.8</javafx.plugin.version>
<gluonfx.plugin.version>1.0.14</gluonfx.plugin.version>
<charm.version>6.1.1</charm.version>
<attach.version>4.0.15</attach.version>
<main.class>Menu.Main</main.class>
</properties>
<repositories>
<repository>
<id>charm-glisten</id>
<name>charm-glisten Repository</name>
<url>https://nexus.gluonhq.com/nexus/content/repositories/releases/</url>
<layout>default</layout>
</repository>
<repository>
<id>gluon-releases</id>
<url>https://nexus.gluonhq.com/nexus/content/repositories/releases/</url>
</repository>
</repositories>
<profiles>
<profile>
<id>android</id>
<properties>
<gluonfx.target>android</gluonfx.target>
</properties>
</profile>
<profile>
<id>ios</id>
<properties>
<gluonfx.target>ios</gluonfx.target>
</properties>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>org.aerofx</groupId>
<artifactId>aerofx</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>org.jfxcore</groupId>
<artifactId>javafx-fxml</artifactId>
<version>15-ea+1</version>
</dependency>
<dependency>
<groupId>org.javatuples</groupId>
<artifactId>javatuples</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-base</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.controlsfx</groupId>
<artifactId>controlsfx</artifactId>
<version>11.0.3</version>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>com.gluonhq</groupId>
<artifactId>charm-glisten</artifactId>
<version>${charm.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>display</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>lifecycle</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>statusbar</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>storage</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>util</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>com.simtechdata</groupId>
<artifactId>Switcher</artifactId>
<version>1.3.6</version>
</dependency>
<dependency>
<groupId>io.gitlab.vincent-lambert</groupId>
<artifactId>miscellaneousWidgets</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>${javafx.plugin.version}</version>
<configuration>
<mainClass>${main.class}</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>com.gluonhq</groupId>
<artifactId>gluonfx-maven-plugin</artifactId>
<version>${gluonfx.plugin.version}</version>
<configuration>
<target>${gluonfx.target}</target>
<mainClass>${main.class}</mainClass>
<attachList>
<list>display</list>
<list>lifecycle</list>
<list>statusbar</list>
<list>storage</list>
</attachList>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/resources</directory>
<includes>
<include>fxml/*.fxml</include>
<include>images/*.png</include>
<include>images/*.jpg</include>
<include>CSS/*.css</include>
<include>fonts/*.ttf</include>
</includes>
</resource>
</resources>
</build>
</project>
PS: My code environment is WSL2 under windows 11.
PS2: Asked logs which does not add more info...
[Sun Aug 14 22:38:45 CEST 2022][INFO] ==================== LINK TASK ====================
[Sun Aug 14 22:38:45 CEST 2022][FINE] Looking for resource: /native/linux/launcher.c
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for compile-additional-sources: gcc -c -DSUBSTRATE -I/opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/include -I/opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/include/linux -I/home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/Character_Creator launcher.c
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process compile-additional-sources...
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for compile-additional-sources: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for libavcodec: /usr/bin/pkg-config --libs libavcodec
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for libavcodec...
[Sun Aug 14 22:38:45 CEST 2022][FINE] [SUB] -lavcodec
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for Get config for libavcodec: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Pkg libavcodec provided flags: [-lavcodec]
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for libavformat: /usr/bin/pkg-config --libs libavformat
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for libavformat...
[Sun Aug 14 22:38:45 CEST 2022][FINE] [SUB] -lavformat
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for Get config for libavformat: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Pkg libavformat provided flags: [-lavformat]
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for libavutil: /usr/bin/pkg-config --libs libavutil
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for libavutil...
[Sun Aug 14 22:38:45 CEST 2022][FINE] [SUB] -lavutil
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for Get config for libavutil: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Pkg libavutil provided flags: [-lavutil]
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for alsa: /usr/bin/pkg-config --libs alsa
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for alsa...
[Sun Aug 14 22:38:45 CEST 2022][FINE] [SUB] -lasound
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for Get config for alsa: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Pkg alsa provided flags: [-lasound]
[Sun Aug 14 22:38:45 CEST 2022][FINE] All flags: [-lgstreamer-lite, -lavcodec, -lavformat, -lavutil, -lasound]
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for gl: /usr/bin/pkg-config --libs gl
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for gl...
[Sun Aug 14 22:38:45 CEST 2022][FINE] [SUB] -lGL
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for Get config for gl: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Pkg gl provided flags: [-lGL]
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for x11: /usr/bin/pkg-config --libs x11
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for x11...
[Sun Aug 14 22:38:45 CEST 2022][FINE] [SUB] -lX11
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for Get config for x11: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Pkg x11 provided flags: [-lX11]
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for gtk+-x11-3.0: /usr/bin/pkg-config --libs gtk+-x11-3.0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for gtk+-x11-3.0...
[Sun Aug 14 22:38:45 CEST 2022][FINE] [SUB] -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for Get config for gtk+-x11-3.0: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Pkg gtk+-x11-3.0 provided flags: [-lgtk-3, -lgdk-3, -lpangocairo-1.0, -lpango-1.0, -lharfbuzz, -latk-1.0, -lcairo-gobject, -lcairo, -lgdk_pixbuf-2.0, -lgio-2.0, -lgobject-2.0, -lglib-2.0]
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for freetype2: /usr/bin/pkg-config --libs freetype2
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for freetype2...
[Sun Aug 14 22:38:45 CEST 2022][FINE] [SUB] -lfreetype
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for Get config for freetype2: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Pkg freetype2 provided flags: [-lfreetype]
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for pangoft2: /usr/bin/pkg-config --libs pangoft2
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for pangoft2...
[Sun Aug 14 22:38:45 CEST 2022][FINE] [SUB] -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lfontconfig -lfreetype
[Sun Aug 14 22:38:45 CEST 2022][FINE] Result for Get config for pangoft2: 0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Pkg pangoft2 provided flags: [-lpangoft2-1.0, -lpango-1.0, -lgobject-2.0, -lglib-2.0, -lharfbuzz, -lfontconfig, -lfreetype]
[Sun Aug 14 22:38:45 CEST 2022][FINE] PB Command for Get config for gthread-2.0: /usr/bin/pkg-config --libs gthread-2.0
[Sun Aug 14 22:38:45 CEST 2022][FINE] Start process Get config for gthread-2.0...
[Sun Aug 14 22:38:46 CEST 2022][FINE] [SUB] -lgthread-2.0 -pthread -lglib-2.0
[Sun Aug 14 22:38:46 CEST 2022][FINE] Result for Get config for gthread-2.0: 0
[Sun Aug 14 22:38:46 CEST 2022][FINE] Pkg gthread-2.0 provided flags: [-lgthread-2.0, -pthread, -lglib-2.0]
[Sun Aug 14 22:38:46 CEST 2022][FINE] PB Command for Get config for zlib: /usr/bin/pkg-config --libs zlib
[Sun Aug 14 22:38:46 CEST 2022][FINE] Start process Get config for zlib...
[Sun Aug 14 22:38:46 CEST 2022][FINE] [SUB] -lz
[Sun Aug 14 22:38:46 CEST 2022][FINE] Result for Get config for zlib: 0
[Sun Aug 14 22:38:46 CEST 2022][FINE] Pkg zlib provided flags: [-lz]
[Sun Aug 14 22:38:46 CEST 2022][FINE] PB Command for Get config for xtst: /usr/bin/pkg-config --libs xtst
[Sun Aug 14 22:38:46 CEST 2022][FINE] Start process Get config for xtst...
[Sun Aug 14 22:38:46 CEST 2022][FINE] [SUB] -lXtst
[Sun Aug 14 22:38:46 CEST 2022][FINE] Result for Get config for xtst: 0
[Sun Aug 14 22:38:46 CEST 2022][FINE] Pkg xtst provided flags: [-lXtst]
[Sun Aug 14 22:38:46 CEST 2022][FINE] PB Command for Get config for gmodule-no-export-2.0: /usr/bin/pkg-config --libs gmodule-no-export-2.0
[Sun Aug 14 22:38:46 CEST 2022][FINE] Start process Get config for gmodule-no-export-2.0...
[Sun Aug 14 22:38:46 CEST 2022][FINE] [SUB] -lgmodule-2.0 -pthread -lglib-2.0
[Sun Aug 14 22:38:46 CEST 2022][FINE] Result for Get config for gmodule-no-export-2.0: 0
[Sun Aug 14 22:38:46 CEST 2022][FINE] Pkg gmodule-no-export-2.0 provided flags: [-lgmodule-2.0, -pthread, -lglib-2.0]
[Sun Aug 14 22:38:46 CEST 2022][FINE] All flags: [-Wl,--no-whole-archive, -lGL, -lX11, -lgtk-3, -lgdk-3, -lpangocairo-1.0, -lpango-1.0, -lharfbuzz, -latk-1.0, -lcairo-gobject, -lcairo, -lgdk_pixbuf-2.0, -lgio-2.0, -lgobject-2.0, -lglib-2.0, -lfreetype, -lpangoft2-1.0, -lpango-1.0, -lgobject-2.0, -lglib-2.0, -lharfbuzz, -lfontconfig, -lfreetype, -lgthread-2.0, -pthread, -lglib-2.0, -lstdc++, -lz, -lXtst, -lm, -lgmodule-2.0, -pthread, -lglib-2.0]
[Sun Aug 14 22:38:46 CEST 2022][FINE] PB Command for link: gcc /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/Character_Creator/launcher.o /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/tmp/SVM-1660509375916/menu.main.o /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libjava.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libnio.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libzip.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libnet.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libprefs.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libj2pkcs11.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libsunec.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libextnet.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libfdlibm.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libfontmanager.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libjavajpeg.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/liblcms.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libawt_headless.a /opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/static/linux-amd64/glibc/libawt.a -l:libjvm.a -l:liblibchelper.a -lz -ldl -lstdc++ -lpthread -Wl,--wrap=pow -rdynamic -lprism_es2 -lglass -lglassgtk3 -ljavafx_font -ljavafx_font_freetype -ljavafx_font_pango -ljavafx_iio -lgstreamer-lite -lavcodec -lavformat -lavutil -lasound -Wl,--no-whole-archive -lGL -lX11 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lfreetype -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lfontconfig -lfreetype -lgthread-2.0 -pthread -lglib-2.0 -lstdc++ -lz -lXtst -lm -lgmodule-2.0 -pthread -lglib-2.0 -lm -ldl -o /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/Character_Creator -L/opt/graalvm-svm-java11-linux-gluon-22.1.0.1-Final/lib/svm/clibraries/linux-amd64 -L/home/lambevin/.gluon/substrate/javafxStaticSdk/19-ea+8/linux-x86_64/sdk/lib
[Sun Aug 14 22:38:46 CEST 2022][FINE] Start process link...
[Sun Aug 14 22:38:46 CEST 2022][INFO] [SUB] /usr/bin/ld: /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/tmp/SVM-1660509375916/menu.main.o:(.data+0x448): undefined reference to `Java_com_sun_security_auth_module_UnixSystem_getUnixInfo'
[Sun Aug 14 22:38:46 CEST 2022][INFO] [SUB] /usr/bin/ld: /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/tmp/SVM-1660509375916/menu.main.o:(.data+0xc78): undefined reference to `JNI_OnLoad_jaas'
[Sun Aug 14 22:38:46 CEST 2022][INFO] [SUB] collect2: error: ld returned 1 exit status
[Sun Aug 14 22:38:46 CEST 2022][FINE] Result for link: 1
[Sun Aug 14 22:38:46 CEST 2022][SEVERE] Process link failed with result: 1
Check the log files under /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/log
And please check https://docs.gluonhq.com/ for more information.
[Sun Aug 14 22:38:46 CEST 2022][INFO] Logging process [link] to file: /home/lambevin/Perso/Character-creator/software/target/gluonfx/log/process-link-1660509526771.log
[Sun Aug 14 22:38:46 CEST 2022][SEVERE] Linking failed.
Check the log files under /home/lambevin/Perso/Character-creator/software/target/gluonfx/x86_64-linux/gvm/log
And please check https://docs.gluonhq.com/ for more information.
just adding the details to @pereda comment above which is the actual correct answer
this issue provides a context.
Perhaps best fix is to use the linkerArgs tag in the configuration block of the gluonfx-maven-plugin section of the pom.xml, looks like this on linux
<linkerArgs>
<arg>
{path to the gluon graalvm folder}/lib/static/linux-amd64/glibc/libjaas.a
</arg>
</linkerArgs>
Notes
on ubuntu 22.04 I had two link errors
undefined reference to `Java_com_sun_security_auth_module_UnixSystem_getUnixInfo'
undefined reference to `JNI_OnLoad_jaas'
the above argument to the linkerArgs
resolved both errors