Skip to content

Instantly share code, notes, and snippets.

@ennerf
Created December 19, 2025 09:57
Show Gist options
  • Select an option

  • Save ennerf/808fb6c4e0bc847a1556d2fe7e966ed2 to your computer and use it in GitHub Desktop.

Select an option

Save ennerf/808fb6c4e0bc847a1556d2fe7e966ed2 to your computer and use it in GitHub Desktop.
src/main/resources/native/android/c/missing_symbols.c
#include <stdlib.h>
// AWT: GraalVM native-image explicitly adds (unresolved) references that are not called,
// but result in a loading error if not defined. See https://github.com/gluonhq/substrate/pull/1000#issuecomment-1152529456
// ============ Generate ============
/*
nm target/gluonfx/aarch64-android/lib*.so | grep "U Java_" | awk '{print "void " $2 "() {\n fprintf(stderr, \"We should never reach here ("$2")\\n\");\n}\n"}'
*/
// ============ Compile ============
/*
cd src/main/resources/native/android/c/
export ANDROID_NDK=~/.gluon/substrate/Android/ndk-bundle
$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -c -target aarch64-linux-android -I. missing_symbols.c
// ============ Link ============
/*
<plugins>
<plugin>
<groupId>com.gluonhq</groupId>
<artifactId>gluonfx-maven-plugin</artifactId>
<configuration>
<linkerArgs>
<arg>${project.basedir}/src/main/resources/native/android/c/missing_symbols.o</arg>
</linkerArgs>
</configuration>
</plugin>
</plugins>
*/
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_clearNativeReadAbortFlag() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_clearNativeReadAbortFlag)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_disposeReader() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_disposeReader)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initJPEGImageReader() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initJPEGImageReader)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initReaderIDs() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initReaderIDs)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImage() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImage)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImageHeader() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImageHeader)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetLibraryState() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetLibraryState)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetReader() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetReader)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setOutColorSpace() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setOutColorSpace)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setSource() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setSource)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_disposeWriter() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_disposeWriter)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initJPEGImageWriter() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initJPEGImageWriter)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initWriterIDs() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initWriterIDs)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_resetWriter() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_resetWriter)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_setDest() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_setDest)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage)\n");
}
void Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeTables() {
fprintf(stderr, "We should never reach here (Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeTables)\n");
}
void Java_java_awt_image_BufferedImage_initIDs() {
fprintf(stderr, "We should never reach here (Java_java_awt_image_BufferedImage_initIDs)\n");
}
void Java_java_awt_image_ColorModel_initIDs() {
fprintf(stderr, "We should never reach here (Java_java_awt_image_ColorModel_initIDs)\n");
}
void Java_java_awt_image_IndexColorModel_initIDs() {
fprintf(stderr, "We should never reach here (Java_java_awt_image_IndexColorModel_initIDs)\n");
}
void Java_java_awt_image_Raster_initIDs() {
fprintf(stderr, "We should never reach here (Java_java_awt_image_Raster_initIDs)\n");
}
void Java_java_awt_image_SampleModel_initIDs() {
fprintf(stderr, "We should never reach here (Java_java_awt_image_SampleModel_initIDs)\n");
}
void Java_java_awt_image_SinglePixelPackedSampleModel_initIDs() {
fprintf(stderr, "We should never reach here (Java_java_awt_image_SinglePixelPackedSampleModel_initIDs)\n");
}
void Java_sun_awt_image_BufImgSurfaceData_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_awt_image_BufImgSurfaceData_initIDs)\n");
}
void Java_sun_awt_image_ByteComponentRaster_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_awt_image_ByteComponentRaster_initIDs)\n");
}
void Java_sun_awt_image_BytePackedRaster_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_awt_image_BytePackedRaster_initIDs)\n");
}
void Java_sun_awt_image_IntegerComponentRaster_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_awt_image_IntegerComponentRaster_initIDs)\n");
}
void Java_sun_awt_image_ShortComponentRaster_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_awt_image_ShortComponentRaster_initIDs)\n");
}
void Java_sun_java2d_Disposer_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_Disposer_initIDs)\n");
}
void Java_sun_java2d_SurfaceData_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_SurfaceData_initIDs)\n");
}
void Java_sun_java2d_cmm_lcms_LCMS_colorConvert() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_cmm_lcms_LCMS_colorConvert)\n");
}
void Java_sun_java2d_cmm_lcms_LCMS_createNativeTransform() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_cmm_lcms_LCMS_createNativeTransform)\n");
}
void Java_sun_java2d_cmm_lcms_LCMS_getProfileDataNative() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_cmm_lcms_LCMS_getProfileDataNative)\n");
}
void Java_sun_java2d_cmm_lcms_LCMS_getProfileID() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_cmm_lcms_LCMS_getProfileID)\n");
}
void Java_sun_java2d_cmm_lcms_LCMS_getTagNative() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_cmm_lcms_LCMS_getTagNative)\n");
}
void Java_sun_java2d_cmm_lcms_LCMS_initLCMS() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_cmm_lcms_LCMS_initLCMS)\n");
}
void Java_sun_java2d_cmm_lcms_LCMS_loadProfileNative() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_cmm_lcms_LCMS_loadProfileNative)\n");
}
void Java_sun_java2d_loops_GraphicsPrimitiveMgr_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_loops_GraphicsPrimitiveMgr_initIDs)\n");
}
void Java_sun_java2d_loops_GraphicsPrimitiveMgr_registerNativeLoops() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_loops_GraphicsPrimitiveMgr_registerNativeLoops)\n");
}
void Java_sun_java2d_pipe_Region_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_pipe_Region_initIDs)\n");
}
void Java_sun_java2d_pipe_ShapeSpanIterator_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_pipe_ShapeSpanIterator_initIDs)\n");
}
void Java_sun_java2d_pipe_SpanClipRenderer_initIDs() {
fprintf(stderr, "We should never reach here (Java_sun_java2d_pipe_SpanClipRenderer_initIDs)\n");
}
void JNI_OnLoad_javajpeg() {
fprintf(stderr, "We should never reach here (JNI_OnLoad_javajpeg)\n");
}
void JNI_OnLoad_lcms() {
fprintf(stderr, "We should never reach here (JNI_OnLoad_lcms)\n");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment