Download raw body.
[llvm22] jdk/* build fix
On May 20, 2026, at 2:13 AM, Theo Buehler <tb@theobuehler.org> wrote:
>
> All the jdks have a -Wuninitialized-const-pointer error due to passing
> the uninitialized pict_attr to XRenderCreatePicture() for which this is
> a const argument. This should be harmless because the valuemask is 0, so
> none of the attributes are read in _XRenderProcessPictureAttributes().
> Initializing the attributes to 0 doesn't change that but makes the
> compiler happy.
The mainline jdk tree has the same fix for this:
https://github.com/bsdkurt/jdk/commit/0dd5b59194f32f54c2ec6572833f45e1402515ba
> On top of that jdk/25 has -Wnontrivial-memcall errors, with an annotation
> that suggests an explicit cast to void *, which probably just papers over
> the actual problem...
>
> https://github.com/llvm/llvm-project/pull/111434
> https://gcc.gnu.org/legacy-ml/gcc-patches/2017-04/msg01571.html
>
> * For target hotspot_variant-server_libjvm_objs_resolvedFieldEntry.o:
> /usr/obj/ports/jdk-25.0.3.6.1/jdk25u-jdk-25.0.3-6-1/src/hotspot/share/oops/resolvedFieldEntry.cpp:49:10: error: first argument in call to 'memset' is a pointer to non-trivially copyable type 'ResolvedFieldEntry' [-Werror,-Wnontrivial-memcall]
> 49 | memset(this, 0, sizeof(*this));
> | ^
> /usr/obj/ports/jdk-25.0.3.6.1/jdk25u-jdk-25.0.3-6-1/src/hotspot/share/oops/resolvedFieldEntry.cpp:49:10: note: explicitly cast the pointer to silence this warning
> 49 | memset(this, 0, sizeof(*this));
> | ^
> | (void*)
The mainline jdk tree has the a more involved fix for this, however I
don’t see the need to back—port the more involved set of changes:
https://github.com/bsdkurt/jdk/commit/66fb015267058f9b5e6788eaeaa758be56ba553e
ok kurt@
>
> Index: 11/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/jdk/11/Makefile,v
> diff -u -p -r1.70 Makefile
> --- 11/Makefile 13 May 2026 11:43:13 -0000 1.70
> +++ 11/Makefile 20 May 2026 05:53:13 -0000
> @@ -13,6 +13,8 @@ PKGNAME= jdk-${PACKAGE_VER}
> PKGSTEM= jdk-11
> EPOCH= 0
>
> +REVISION= 0
> +
> DIST_SUBDIR= jdk
> DISTNAME= jdk-${VERSION_STR}
> WRKDIST= ${WRKDIR}/jdk11u-jdk-${BASE_VER}-${BUILD_VER}-${BSD_PORT_REL}
> Index: 11/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> ===================================================================
> RCS file: 11/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> diff -N 11/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ 11/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c 20 May 2026 05:51:39 -0000
> @@ -0,0 +1,14 @@
> +error: variable 'pict_attr' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer]
> +
> +Index: src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
> +--- src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c.orig
> ++++ src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
> +@@ -398,7 +398,7 @@ Java_sun_java2d_xr_XRBackendNative_createPixmap(JNIEnv
> + JNIEXPORT jint JNICALL
> + Java_sun_java2d_xr_XRBackendNative_createPictureNative
> + (JNIEnv *env, jclass cls, jint drawable, jlong formatPtr) {
> +- XRenderPictureAttributes pict_attr;
> ++ XRenderPictureAttributes pict_attr = { 0 };
> + return XRenderCreatePicture(awt_display, (Drawable) drawable,
> + (XRenderPictFormat *) jlong_to_ptr(formatPtr),
> + 0, &pict_attr);
> Index: 17/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/jdk/17/Makefile,v
> diff -u -p -r1.41 Makefile
> --- 17/Makefile 13 May 2026 17:51:09 -0000 1.41
> +++ 17/Makefile 20 May 2026 05:53:19 -0000
> @@ -13,6 +13,8 @@ PKGNAME= jdk-${PACKAGE_VER}
> PKGSTEM= jdk-17
> EPOCH= 0
>
> +REVISION= 0
> +
> DIST_SUBDIR= jdk
> DISTNAME= jdk-${VERSION_STR}
> WRKDIST= ${WRKDIR}/jdk17u-jdk-${BASE_VER}-${BUILD_VER}-${BSD_PORT_REL}
> Index: 17/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> ===================================================================
> RCS file: 17/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> diff -N 17/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ 17/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c 20 May 2026 05:51:39 -0000
> @@ -0,0 +1,14 @@
> +error: variable 'pict_attr' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer]
> +
> +Index: src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
> +--- src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c.orig
> ++++ src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
> +@@ -339,7 +339,7 @@ Java_sun_java2d_xr_XRBackendNative_createPixmap(JNIEnv
> + JNIEXPORT jint JNICALL
> + Java_sun_java2d_xr_XRBackendNative_createPictureNative
> + (JNIEnv *env, jclass cls, jint drawable, jlong formatPtr) {
> +- XRenderPictureAttributes pict_attr;
> ++ XRenderPictureAttributes pict_attr = { 0 };
> + return XRenderCreatePicture(awt_display, (Drawable) drawable,
> + (XRenderPictFormat *) jlong_to_ptr(formatPtr),
> + 0, &pict_attr);
> Index: 21/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/jdk/21/Makefile,v
> diff -u -p -r1.16 Makefile
> --- 21/Makefile 13 May 2026 17:52:30 -0000 1.16
> +++ 21/Makefile 20 May 2026 05:53:22 -0000
> @@ -13,6 +13,8 @@ PKGNAME= jdk-${PACKAGE_VER}
> PKGSTEM= jdk-21
> EPOCH= 0
>
> +REVISION= 0
> +
> DIST_SUBDIR= jdk
> DISTNAME= jdk-${VERSION_STR}
> WRKDIST= ${WRKDIR}/jdk21u-jdk-${BASE_VER}-${BUILD_VER}-${BSD_PORT_REL}
> Index: 21/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> ===================================================================
> RCS file: 21/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> diff -N 21/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ 21/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c 20 May 2026 05:51:39 -0000
> @@ -0,0 +1,14 @@
> +error: variable 'pict_attr' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer]
> +
> +Index: src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
> +--- src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c.orig
> ++++ src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
> +@@ -339,7 +339,7 @@ Java_sun_java2d_xr_XRBackendNative_createPixmap(JNIEnv
> + JNIEXPORT jint JNICALL
> + Java_sun_java2d_xr_XRBackendNative_createPictureNative
> + (JNIEnv *env, jclass cls, jint drawable, jlong formatPtr) {
> +- XRenderPictureAttributes pict_attr;
> ++ XRenderPictureAttributes pict_attr = { 0 };
> + return XRenderCreatePicture(awt_display, (Drawable) drawable,
> + (XRenderPictFormat *) jlong_to_ptr(formatPtr),
> + 0, &pict_attr);
> Index: 25/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/jdk/25/Makefile,v
> diff -u -p -r1.9 Makefile
> --- 25/Makefile 13 May 2026 14:32:05 -0000 1.9
> +++ 25/Makefile 20 May 2026 05:53:28 -0000
> @@ -13,6 +13,8 @@ PKGNAME= jdk-${PACKAGE_VER}
> PKGSTEM= jdk-25
> EPOCH= 0
>
> +REVISION= 0
> +
> DIST_SUBDIR= jdk
> DISTNAME= jdk-${VERSION_STR}
> WRKDIST= ${WRKDIR}/jdk25u-jdk-${BASE_VER}-${BUILD_VER}-${BSD_PORT_REL}
> Index: 25/patches/patch-src_hotspot_share_oops_resolvedFieldEntry_cpp
> ===================================================================
> RCS file: 25/patches/patch-src_hotspot_share_oops_resolvedFieldEntry_cpp
> diff -N 25/patches/patch-src_hotspot_share_oops_resolvedFieldEntry_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ 25/patches/patch-src_hotspot_share_oops_resolvedFieldEntry_cpp 20 May 2026 05:51:39 -0000
> @@ -0,0 +1,14 @@
> +error: first argument in call to 'memset' is a pointer to non-trivially copyable type 'ResolvedFieldEntry' [-Werror,-Wnontrivial-memcall]
> +
> +Index: src/hotspot/share/oops/resolvedFieldEntry.cpp
> +--- src/hotspot/share/oops/resolvedFieldEntry.cpp.orig
> ++++ src/hotspot/share/oops/resolvedFieldEntry.cpp
> +@@ -46,7 +46,7 @@ void ResolvedFieldEntry::print_on(outputStream* st) co
> + #if INCLUDE_CDS
> + void ResolvedFieldEntry::remove_unshareable_info() {
> + u2 saved_cpool_index = _cpool_index;
> +- memset(this, 0, sizeof(*this));
> ++ memset((void *)this, 0, sizeof(*this));
> + _cpool_index = saved_cpool_index;
> + }
> +
> Index: 25/patches/patch-src_hotspot_share_oops_resolvedMethodEntry_cpp
> ===================================================================
> RCS file: 25/patches/patch-src_hotspot_share_oops_resolvedMethodEntry_cpp
> diff -N 25/patches/patch-src_hotspot_share_oops_resolvedMethodEntry_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ 25/patches/patch-src_hotspot_share_oops_resolvedMethodEntry_cpp 20 May 2026 05:51:39 -0000
> @@ -0,0 +1,20 @@
> +error: first argument in call to 'memset' is a pointer to non-trivially copyable type 'ResolvedMethodEntry' [-Werror,-Wnontrivial-memcall]
> +
> +Index: src/hotspot/share/oops/resolvedMethodEntry.cpp
> +--- src/hotspot/share/oops/resolvedMethodEntry.cpp.orig
> ++++ src/hotspot/share/oops/resolvedMethodEntry.cpp
> +@@ -40,12 +40,12 @@ void ResolvedMethodEntry::reset_entry() {
> + if (has_resolved_references_index()) {
> + u2 saved_resolved_references_index = _entry_specific._resolved_references_index;
> + u2 saved_cpool_index = _cpool_index;
> +- memset(this, 0, sizeof(*this));
> ++ memset((void *)this, 0, sizeof(*this));
> + set_resolved_references_index(saved_resolved_references_index);
> + _cpool_index = saved_cpool_index;
> + } else {
> + u2 saved_cpool_index = _cpool_index;
> +- memset(this, 0, sizeof(*this));
> ++ memset((void *)this, 0, sizeof(*this));
> + _cpool_index = saved_cpool_index;
> + }
> + }
> Index: 25/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> ===================================================================
> RCS file: 25/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> diff -N 25/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ 25/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c 20 May 2026 05:51:39 -0000
> @@ -0,0 +1,14 @@
> +error: variable 'pict_attr' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer]
> +
> +Index: src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
> +--- src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c.orig
> ++++ src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
> +@@ -339,7 +339,7 @@ Java_sun_java2d_xr_XRBackendNative_createPixmap(JNIEnv
> + JNIEXPORT jint JNICALL
> + Java_sun_java2d_xr_XRBackendNative_createPictureNative
> + (JNIEnv *env, jclass cls, jint drawable, jlong formatPtr) {
> +- XRenderPictureAttributes pict_attr;
> ++ XRenderPictureAttributes pict_attr = { 0 };
> + return XRenderCreatePicture(awt_display, (Drawable) drawable,
> + (XRenderPictFormat *) jlong_to_ptr(formatPtr),
> + 0, &pict_attr);
>
[llvm22] jdk/* build fix