LWJGL/lwjgl3

Build fails with zstd 1.5.6, but build without errors with 1.5.5

VVD opened this issue · 3 comments

VVD commented

Version

3.3.4 (snapshot)

Platform

FreeBSD amd64

JDK

OpenJDK 17.0.10+7-1

Module

zstd

Bug description

After update zstd from 1.5.5 to 1.5.6 build fails in module zstd.

OS: FreeBSD 13.3 amd64.

Stacktrace or crash log output

[Compiler] /tmp/work/usr/ports/games/lwjgl3/work/lwjgl3-de8bd86/modules/lwjgl/zstd/src/generated/c/org_lwjgl_util_zstd_ZstdX.c:62:19: fatal error: 'ZSTD_generateSequences' is deprecated: For debugging only, will be replaced by ZSTD_extractSequences() [-Wdeprecated-declarations]
 [Compiler]    62 |     return (jlong)ZSTD_generateSequences(zc, outSeqs, (size_t)outSeqsSize, src, (size_t)srcSize);
 [Compiler]       |                   ^
 [Compiler] /usr/local/include/zstd.h:1583:1: note: 'ZSTD_generateSequences' has been explicitly marked deprecated here
 [Compiler]  1583 | ZSTD_DEPRECATED("For debugging only, will be replaced by ZSTD_extractSequences()")
 [Compiler]       | ^
 [Compiler] /usr/local/include/zstd.h:61:53: note: expanded from macro 'ZSTD_DEPRECATED'
 [Compiler]    61 | #    define ZSTD_DEPRECATED(message) __attribute__((deprecated(message)))
 [Compiler]       |                                                     ^
 [Compiler] 1 error generated.
  [clang++] Linking lwjgl_tootle

Hey @VVD,

As I've already explained in #421, such issues are expected when using unsupported native code/binaries. LWJGL tries to avoid incompatibilities as much as possible, but we can't control how 3rd party libraries change. Breaking changes in the native library will always break the LWJGL bindings.

This will be fixed when the Zstd bindings get updated to 1.5.6.

VVD commented

The essence of this bug report (issue) is a request for support for a new version of the zstd.
Maybe I create patch self and upload here.
In any case, this must be done.

VVD commented
--- config/freebsd/build.xml.orig       2023-12-18 14:22:59 UTC
+++ config/freebsd/build.xml
@@ -410,7 +412,7 @@
         </build>

         <!-- zstd -->
-        <build module="zstd" simple="true" if:true="${binding.zstd}">
+        <build module="zstd" simple="true" flags="-Wno-deprecated-declarations" if:true="${binding.zstd}">
             <beforeCompile>
                 <compile flags="-DZSTD_MULTITHREAD">
                     <arg value="-I${module.lwjgl.rel}/xxhash/src/main/c"/>