[Bug 269034] java/eclipse: fix build with clang 15

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 18 Jan 2023 20:18:58 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269034

            Bug ID: 269034
           Summary: java/eclipse: fix build with clang 15
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: dim@FreeBSD.org
                CC: jonc@chen.org.nz
             Flags: maintainer-feedback?(jonc@chen.org.nz)
                CC: jonc@chen.org.nz

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.

-- 
You are receiving this mail because:
You are the assignee for the bug.