git: 6bd6dc4ea51f - 2024Q3 - java/openjdk11: fix build with clang 19
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 07 Aug 2024 16:52:18 UTC
The branch 2024Q3 has been updated by dim:
URL: https://cgit.FreeBSD.org/ports/commit/?id=6bd6dc4ea51f59381fbc5eb84b0e883bc297270c
commit 6bd6dc4ea51f59381fbc5eb84b0e883bc297270c
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-08-01 11:41:40 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-08-07 16:51:45 +0000
java/openjdk11: fix build with clang 19
Clang 19 is now more strict about undefined integral expressions used as
constants in enum, which results in errors compiling java/openjdk11,
similar to:
/wrkdirs/usr/ports/java/openjdk11/work/jdk11u-jdk-11.0.24-8-1/src/jdk.pack/share/native/common-unpack/constants.h:206:33: error: expression is not an integral constant expression
206 | AO_UNUSED_MBZ = (-1)<<13, // options bits reserved for future use.
| ^~~~~~~~
/wrkdirs/usr/ports/java/openjdk11/work/jdk11u-jdk-11.0.24-8-1/src/jdk.pack/share/native/common-unpack/constants.h:206:37: note: left shift of negative value -1
206 | AO_UNUSED_MBZ = (-1)<<13, // options bits reserved for future use.
| ^
Replace the negative value with ~0u to fix this error.
PR: 280560
Approved by: glewis (maintainer)
MFH: 2024Q3
(cherry picked from commit d2ae63c6feffda05eb643520dd851451ee337f53)
---
.../patch-src_jdk.pack_share_native_common-unpack_constants.h | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/java/openjdk11/files/patch-src_jdk.pack_share_native_common-unpack_constants.h b/java/openjdk11/files/patch-src_jdk.pack_share_native_common-unpack_constants.h
new file mode 100644
index 000000000000..b9e766070817
--- /dev/null
+++ b/java/openjdk11/files/patch-src_jdk.pack_share_native_common-unpack_constants.h
@@ -0,0 +1,11 @@
+--- src/jdk.pack/share/native/common-unpack/constants.h.orig 2024-07-27 15:11:22 UTC
++++ src/jdk.pack/share/native/common-unpack/constants.h
+@@ -203,7 +203,7 @@ enum {
+ AO_HAVE_FIELD_FLAGS_HI = 1<<10,
+ AO_HAVE_METHOD_FLAGS_HI = 1<<11,
+ AO_HAVE_CODE_FLAGS_HI = 1<<12,
+- AO_UNUSED_MBZ = (-1)<<13, // options bits reserved for future use.
++ AO_UNUSED_MBZ = (~0u)<<13, // options bits reserved for future use.
+
+ #define ARCHIVE_BIT_DO(F) \
+ F(AO_HAVE_SPECIAL_FORMATS) \