Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Mar 2022 19:53:44 +0000
From:      bugzilla-noreply@freebsd.org
To:        java@FreeBSD.org
Subject:   maintainer-feedback requested: [Bug 262845] java/openjdk13 java/openjdk14 java/openjdk15 java/openjdk16 java/openjdk17: fix build with clang 14
Message-ID:  <bug-262845-8522-MZIxZbR2ih@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-262845-8522@https.bugs.freebsd.org/bugzilla/>
References:  <bug-262845-8522@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
Bugzilla Automation <bugzilla@FreeBSD.org> has asked freebsd-java (Nobody)
<java@FreeBSD.org> for maintainer-feedback:
Bug 262845: java/openjdk13 java/openjdk14 java/openjdk15 java/openjdk16
java/openjdk17: fix build with clang 14
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D262845



--- Description ---
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):

=3D=3D=3D Output from failing command(s) repeated here =3D=3D=3D
* For target hotspot_variant-server_libjvm_objs_serviceThread.o:
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/s=
hare
/runtime/serviceThread.cpp:133:15:
error: use of bitwise '|' with boolean operands
[-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed =3D LowMemoryDetector::has_pending_requests(=
)) |
	     ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/s=
hare
/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/s=
hare
/runtime/serviceThread.cpp:133:15:
error: use of bitwise '|' with boolean operands
[-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed =3D LowMemoryDetector::has_pending_requests(=
)) |
	      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/s=
hare
/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/s=
hare
/runtime/serviceThread.cpp:133:15:
error: use of bitwise '|' with boolean operands
[-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed =3D LowMemoryDetector::has_pending_requests(=
)) |
	      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/s=
hare
/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/s=
hare
/runtime/serviceThread.cpp:133:15:
error: use of bitwise '|' with boolean operands
[-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed =3D LowMemoryDetector::has_pending_requests(=
)) |
	      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ... (rest of output omitted)

Although the warning is normally an indication of a potential problem, in t=
his
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 ea=
rly
      // 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/servic=
eThr
ead.cpp#L140
)

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-262845-8522-MZIxZbR2ih>