* Disable CompressedClassPointers on aarch64. This fixes the build
on some aarch64 machines where it previously failed, e.g. RPI4,
and doesn't seem to affect the build on others (AWS aarch64 hardware).
This is based on and uses a patch initially created by ronald@
PR: 260187
Tested by: ronald@
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
In my previous commit 18c6e18 I missed some ports where RUBY was
optional. This commit fixes those missing ports and fixes INDEX build.
Approved by: portmgr
Fixes: 18c6e18 Mk/**ruby.mk: Switch from USE_RUBY=yes to USES=ruby
Switch from Mk/bsd.ruby.mk to Mk/Uses/ruby.mk
Notable changes are.
- Mk/bsd.ruby.mk is moved to Mk/Uses/ruby.mk.
- USE_RUBY=yes is replaced with USES=ruby.
- USE_RUBY_EXTCONF is replaced with USES=ruby:extconf.
- USE_RUBY_RDOC is replaced with USES=ruby:rdoc.
- USE_RUBY_SETUP is replaces with USES=ruby:setup.
- RUBY_NO_BUILD_DEPENDS and RUBY_NO_RUN_DEPENDS are replaced with
USES=ruby:{build,none,run}.
- RUBY_REQUIRE isn't used anywhere, so removed.
- USES=gem now implies USES=ruby.
This is mainly the work of yasu@ at https://reviews.freebsd.org/D27863
I have just made some cosmetic changes and ran exp-run to test that the
tree is not in a BROKEN state.
Approved by: portmgr
Differential Revision: https://reviews.freebsd.org/D37925
During an exp-run for llvm 15 (see bug 265425), it turned out that
java/openjdk18 failed to build with clang 15:
/wrkdirs/usr/ports/java/openjdk18/work/jdk18u-jdk-18.0.2-9-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:374:41: 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]
proxies = (*g_proxy_resolver_lookup)(resolver, uri, NULL, &error);
^
/wrkdirs/usr/ports/java/openjdk18/work/jdk18u-jdk-18.0.2-9-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:393:63: 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]
(*g_network_address_parse_uri)(proxies[i], 0,
^
/wrkdirs/usr/ports/java/openjdk18/work/jdk18u-jdk-18.0.2-9-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:398:70: 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]
phost = (*g_network_address_get_hostname)(conn);
^
/wrkdirs/usr/ports/java/openjdk18/work/jdk18u-jdk-18.0.2-9-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:399:66: 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]
pport = (*g_network_address_get_port)(conn);
^
/wrkdirs/usr/ports/java/openjdk18/work/jdk18u-jdk-18.0.2-9-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:435:22: 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]
(*g_strfreev)(proxies);
^
This is because clang 15 warns by default about functions without
arguments in their prototypes. Fix this by suppressing the warning.
PR: 268373
Approved by: portmgr (tcberner)
MFH: 2022Q4
During an exp-run for llvm 15 (see bug 265425), it turned out that
java/openjdk17 failed to build with clang 15:
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:374:41: 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]
proxies = (*g_proxy_resolver_lookup)(resolver, uri, NULL, &error);
^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:393:63: 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]
(*g_network_address_parse_uri)(proxies[i], 0,
^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:398:70: 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]
phost = (*g_network_address_get_hostname)(conn);
^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:399:66: 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]
pport = (*g_network_address_get_port)(conn);
^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:435:22: 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]
(*g_strfreev)(proxies);
^
This is because clang 15 warns by default about functions without
arguments in their prototypes. Fix this by suppressing the warning.
PR: 268366
Approved by: portmgr (tcberner)
MFH: 2022Q4
During an exp-run for llvm 15 (see bug 265425), it turned out that
java/openjdk8 failed to build with clang 15:
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:64:30: error: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion]
INVOKE(SplashLoadMemory, NULL)(pdata, size);
^~~~
/usr/include/sys/_null.h:34:14: note: expanded from macro 'NULL'
#define NULL ((void *)0)
^~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:60:39: note: expanded from macro 'INVOKE'
#define INVOKE(name,def) _INVOKE(name,def,return)
^~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:57:25: note: expanded from macro '_INVOKE'
if (!proc) { return def; } \
^~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:68:28: error: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion]
INVOKE(SplashLoadFile, NULL)(filename);
^~~~
/usr/include/sys/_null.h:34:14: note: expanded from macro 'NULL'
#define NULL ((void *)0)
^~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:60:39: note: expanded from macro 'INVOKE'
#define INVOKE(name,def) _INVOKE(name,def,return)
^~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:57:25: note: expanded from macro '_INVOKE'
if (!proc) { return def; } \
^~~
2 errors generated.
Indeed, instead of the pointer value NULL, the integer value 0 should be
used.
PR: 268223
Approved by: portmgr (tcberner)
MFH: 2022Q4
See also <https://bugs.openjdk.org/browse/JDK-8247766>.
Even though the upstream fix has been applied to this version of the
JDK, some users still report the assertion "guarantee(val < (1U <<
nbits)) failed: Field too big for insn" occurring, when it is built with
recent versions of clang.
Therefore, restore the workaround that uses clang 12 to build the JDK on
aarch64.
PR: 264065
MFH: 2022Q3
The WWW: lines in the pkg-descr files of these ports where not at the
end of those files and have been missed in prior conversion runs.
Approved by: portmgr (implicit)