On May 20, 2026, at 2:13 AM, Theo Buehler <[email protected]> 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); >
