During an exp-run for llvm 15 (see bug 265425), it turned out that
java/eclipse failed to build with clang 15:
[INFO] [exec] Building GTK3 bindings:
[INFO] [exec] gmake[1]: Entering directory '/wrkdirs/usr/ports/java/eclipse/work/eclipse.platform.releng.aggregator-R4_24/eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.freebsd.amd64/tmpdir'
...
[INFO] [exec] cc -O -Wall -fPIC -DSWT_VERSION=4952r11 -DFREEBSD -DGTK -I`pkg-config --variable=prefix gtk+-3.0`/include -I/usr/local/openjdk11/include -I/usr/local/openjdk11/include/freebsd -DJNI64 -m64 -Werror `pkg-config --cflags gtk+-3.0 gtk+-unix-print-3.0` -c os.c
[INFO] [exec] os.c:10086:31: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
[INFO] [exec] rc = (jint)((jint (*)())arg0)(arg1, arg2, arg3);
[INFO] [exec] ^
[INFO] [exec] os.c:10098:31: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
[INFO] [exec] rc = (jint)((jint (*)())arg0)(arg1, arg2);
[INFO] [exec] ^
[INFO] [exec] os.c:10704:33: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
[INFO] [exec] rc = (jlong)((jlong (*)())arg0)(arg1, arg2, arg3, arg4);
[INFO] [exec] ^
[INFO] [exec] os.c:10716:33: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
[INFO] [exec] rc = (jlong)((jlong (*)())arg0)(arg1, arg2, arg3, arg4, arg5, arg6);
[INFO] [exec] ^
[INFO] [exec] os.c:10728:33: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
[INFO] [exec] rc = (jlong)((jlong (*)())arg0)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
[INFO] [exec] ^
These -Werror warnings are in code generated by JNIGenerator, so they
cannot directly be fixed (at least not without hacking on JNIGenerator
itself).
Instead we need to add -Wno-deprecated-non-prototype for clang 15 and
higher. To achieve this, we have to pass CFLAGS to MAVEN_ENV, and adjust
the gtk build.sh script to respect the CFLAGS setting in the
environment.
PR: 269034
Approved by: jonc@chen.org.nz (maintainer)
MFH: 2023Q1