From 813924ef7c7af7fbec815eed62c565c1d635ec13 Mon Sep 17 00:00:00 2001 From: tb Date: Wed, 20 May 2026 11:18:07 +0000 Subject: [PATCH] devel/jdk/{11,17,21,25}: fix build with llvm22, ok kurt (maintainer) 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. Same fix is already upstream: 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 Better fix here, but kurt thinks it's not worth backporting: https://github.com/bsdkurt/jdk/commit/66fb015267058f9b5e6788eaeaa758be56ba553e --- devel/jdk/11/Makefile | 2 ++ ...e_libawt_xawt_java2d_x11_XRBackendNative_c | 14 +++++++++++++ devel/jdk/17/Makefile | 2 ++ ...e_libawt_xawt_java2d_x11_XRBackendNative_c | 14 +++++++++++++ devel/jdk/21/Makefile | 2 ++ ...e_libawt_xawt_java2d_x11_XRBackendNative_c | 14 +++++++++++++ devel/jdk/25/Makefile | 2 ++ ..._hotspot_share_oops_resolvedFieldEntry_cpp | 14 +++++++++++++ ...hotspot_share_oops_resolvedMethodEntry_cpp | 20 +++++++++++++++++++ ...e_libawt_xawt_java2d_x11_XRBackendNative_c | 14 +++++++++++++ 10 files changed, 98 insertions(+) create mode 100644 devel/jdk/11/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c create mode 100644 devel/jdk/17/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c create mode 100644 devel/jdk/21/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c create mode 100644 devel/jdk/25/patches/patch-src_hotspot_share_oops_resolvedFieldEntry_cpp create mode 100644 devel/jdk/25/patches/patch-src_hotspot_share_oops_resolvedMethodEntry_cpp create mode 100644 devel/jdk/25/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c diff --git a/devel/jdk/11/Makefile b/devel/jdk/11/Makefile index 45f03483dcc..4f5d9fbef90 100644 --- a/devel/jdk/11/Makefile +++ b/devel/jdk/11/Makefile @@ -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} diff --git a/devel/jdk/11/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c b/devel/jdk/11/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c new file mode 100644 index 00000000000..a7f77660de7 --- /dev/null +++ b/devel/jdk/11/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c @@ -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); diff --git a/devel/jdk/17/Makefile b/devel/jdk/17/Makefile index d55081db694..7facc7dcadb 100644 --- a/devel/jdk/17/Makefile +++ b/devel/jdk/17/Makefile @@ -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} diff --git a/devel/jdk/17/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c b/devel/jdk/17/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c new file mode 100644 index 00000000000..ebf0f699a8e --- /dev/null +++ b/devel/jdk/17/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c @@ -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); diff --git a/devel/jdk/21/Makefile b/devel/jdk/21/Makefile index 2b2069ca37e..b5a07bf1dcc 100644 --- a/devel/jdk/21/Makefile +++ b/devel/jdk/21/Makefile @@ -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} diff --git a/devel/jdk/21/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c b/devel/jdk/21/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c new file mode 100644 index 00000000000..ebf0f699a8e --- /dev/null +++ b/devel/jdk/21/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c @@ -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); diff --git a/devel/jdk/25/Makefile b/devel/jdk/25/Makefile index 2cdb4675f8a..deeab644c1b 100644 --- a/devel/jdk/25/Makefile +++ b/devel/jdk/25/Makefile @@ -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} diff --git a/devel/jdk/25/patches/patch-src_hotspot_share_oops_resolvedFieldEntry_cpp b/devel/jdk/25/patches/patch-src_hotspot_share_oops_resolvedFieldEntry_cpp new file mode 100644 index 00000000000..1409ecbc109 --- /dev/null +++ b/devel/jdk/25/patches/patch-src_hotspot_share_oops_resolvedFieldEntry_cpp @@ -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; + } + diff --git a/devel/jdk/25/patches/patch-src_hotspot_share_oops_resolvedMethodEntry_cpp b/devel/jdk/25/patches/patch-src_hotspot_share_oops_resolvedMethodEntry_cpp new file mode 100644 index 00000000000..413f3a76e9e --- /dev/null +++ b/devel/jdk/25/patches/patch-src_hotspot_share_oops_resolvedMethodEntry_cpp @@ -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; + } + } diff --git a/devel/jdk/25/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c b/devel/jdk/25/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c new file mode 100644 index 00000000000..ebf0f699a8e --- /dev/null +++ b/devel/jdk/25/patches/patch-src_java_desktop_unix_native_libawt_xawt_java2d_x11_XRBackendNative_c @@ -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);