1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-05 06:27:37 +00:00

java/openjdk13 java/openjdk14 java/openjdk15 java/openjdk16 java/openjdk17 java/openjdk17-jre: fix build with clang 14

During an exp-run for llvm 14 (see bug 261742), it turned out that
java/openjdk13 and java/openjdk17 fail to build with clang 14 (but this
also affects openjdk14 through 16):

=== Output from failing command(s) repeated here ===
* For target hotspot_variant-server_libjvm_objs_serviceThread.o:
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed = LowMemoryDetector::has_pending_requests()) |
             ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: note: cast one or both operands to int to silence this warning
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed = LowMemoryDetector::has_pending_requests()) |
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: note: cast one or both operands to int to silence this warning
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed = LowMemoryDetector::has_pending_requests()) |
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: note: cast one or both operands to int to silence this warning
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed = LowMemoryDetector::has_pending_requests()) |
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ... (rest of output omitted)

Although the warning is normally an indication of a potential problem,
in this case a comment just before the affected code explictly mentions
the reason for using bitwise '|' instead of logical '||':

      // Process all available work on each (outer) iteration, rather than
      // only the first recognized bit of work, to avoid frequently true early
      // tests from potentially starving later work.  Hence the use of
      // arithmetic-or to combine results; we don't want short-circuiting.

(See
<https://github.com/openjdk/jdk/blob/master/src/hotspot/share/runtime/serviceThread.cpp#L140>)

Therefore, we should suppress -Wbitwise-instead-of-logical for clang 14
and higher.

PR:		262845
Approved by:	portmgr (build fix blanket)
MFH:		2022Q2
This commit is contained in:
Dimitry Andric 2022-03-26 20:47:44 +01:00
parent 0965da6626
commit e406118f77
5 changed files with 30 additions and 5 deletions

View File

@ -130,7 +130,12 @@ CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFA
.else
MAKE_ENV+= USE_CLANG=true
.if ${COMPILER_VERSION} >= 130
CONFIGURE_ARGS+= --with-extra-cflags="-Wno-unused-but-set-parameter"
EXTRA_CFLAGS+= -Wno-unused-but-set-parameter
.if ${COMPILER_VERSION} >= 140
EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical
.endif
CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}"
CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}"
.endif
.endif

View File

@ -132,7 +132,12 @@ CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFA
.else
MAKE_ENV+= USE_CLANG=true
.if ${COMPILER_VERSION} >= 130
CONFIGURE_ARGS+= --with-extra-cflags="-Wno-unused-but-set-parameter"
EXTRA_CFLAGS+= -Wno-unused-but-set-parameter
.if ${COMPILER_VERSION} >= 140
EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical
.endif
CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}"
CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}"
.endif
.endif

View File

@ -131,7 +131,12 @@ CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFA
.else
MAKE_ENV+= USE_CLANG=true
.if ${COMPILER_VERSION} >= 130
CONFIGURE_ARGS+= --with-extra-cflags="-Wno-unused-but-set-parameter"
EXTRA_CFLAGS+= -Wno-unused-but-set-parameter
.if ${COMPILER_VERSION} >= 140
EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical
.endif
CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}"
CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}"
.endif
.endif

View File

@ -134,7 +134,12 @@ CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFA
.else
MAKE_ENV+= USE_CLANG=true
.if ${COMPILER_VERSION} >= 130
CONFIGURE_ARGS+= --with-extra-cflags="-Wno-unused-but-set-parameter"
EXTRA_CFLAGS+= -Wno-unused-but-set-parameter
.if ${COMPILER_VERSION} >= 140
EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical
.endif
CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}"
CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}"
.endif
.endif

View File

@ -149,7 +149,12 @@ CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFA
.else
MAKE_ENV+= USE_CLANG=true
.if ${COMPILER_VERSION} >= 130
CONFIGURE_ARGS+= --with-extra-cflags="-Wno-unused-but-set-parameter"
EXTRA_CFLAGS+= -Wno-unused-but-set-parameter
.if ${COMPILER_VERSION} >= 140
EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical
.endif
CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}"
CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}"
.endif
.endif