1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-06 01:57:40 +00:00
freebsd-ports/java
Dimitry Andric 3822416493 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13
During an exp-run for llvm 13 (see bug 258209), it turned out that
java/openjdk11 through openjdk13 fail to build with clang 13:

=== Output from failing command(s) repeated here ===
* For target jdk__packages_attribute.done:

These crashes are all caused by the markOop/markOopDesc classes, which
are used to keep track of objects, and which are 'marked' using the low
few bits. (See
https://github.com/openjdk/jdk13u/blob/master/src/hotspot/share/oops/markOop.hpp
).

After some laborious bisecting, I found out that these crashes start
occuring after the upstream commit https://github.com
/llvm/llvm-project/commit/16d03818412 (Return "[CGCall] Annotate this
argument with alignment").

What happens afterwards, is that clang considers the "this" pointer to
always be aligned to the alignment of the actual object, and then
masking or adding a few low bits is not working as expected.

The reason openjdk14 and higher work fine with clang 13, and don't crash
similarly, is that the OpenJDK people completely redid the
markOop/markOopDesc classes in
ae5615c614
("8229258: Rework markOop and markOopDesc into a simpler mark word value
carrier"). E.g, the markOopDesc class was renamed to markWord, and
*stores* a pointer-like value instead of *being* a pointer-like value.
This is a much safer way of handling things.

However, this upstream commit is *very* large, as are a few of its
follow-ups, which is probably the reason why it has not been backported
to JDKs <= 13. I tried manually backporting it, but got lost in many
nasty patch conflicts and problems.

As a workaround, build openjdk8 through 13 with clang12 from the
devel/llvm12 port, for the time being.

In addition, allow openjdk14 through 17 to be built with clang 13, by
adding -Wno-unused-but-set-parameter to the compilation flags.

PR:		258954
Approved by:	maintainer timeout (2 weeks)
MFH:		2021Q4
2021-10-16 14:22:03 +02:00
..
apache-bcel *: fix tab vs. space issues, and comments according to the guide. 2021-10-16 11:51:39 +02:00
apache-commons-beanutils
apache-commons-cli
apache-commons-codec
apache-commons-collections
apache-commons-dbcp java/apache-commons-dbcp: Update MASTER_SITES 2021-10-11 20:52:45 +02:00
apache-commons-discovery java/apache-commons-discovery: Update MASTER_SITES, deprecate and set expiration date to 2022-03-31 2021-10-14 10:30:54 +02:00
apache-commons-httpclient
apache-commons-lang java/apache-commons-lang: Add NO_ARCH 2021-07-01 04:44:27 +08:00
apache-commons-lang3 java/apache-commons-lang3: Upgrade to 3.12.0 2021-10-09 15:55:11 -07:00
apache-commons-logging
apache-commons-pool java/apache-commons-pool: update to 2.11.1 release. 2021-08-23 14:43:10 +02:00
apache-commons-primitives java/apache-commons-primitives: Update MASTER_SITES, deprecate and set expiration date to 2022-03-31 2021-10-10 10:51:52 +02:00
aparapi
avis
berkeley-db
bluej */*: Fix ENOTIME: return my ports to the pool 2021-05-22 10:13:01 +08:00
bootstrap-openjdk6
bootstrap-openjdk8 java/openjdk8: Switch to server mode on aarch64 2021-09-01 18:23:08 +02:00
bootstrap-openjdk11 cleanup: drop support for EOL FreeBSD 11.X 2021-09-30 23:23:30 +02:00
bouncycastle
bouncycastle15 security/bouncycastle15: update to 1.69 2021-08-19 22:40:35 -05:00
cos Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
cryptix-jce
dbvis Deorbit RESTRICTED && NO_CDROM, part one. 2021-05-06 13:47:41 +02:00
eclipse java/eclipse: fix runtime on powerpc64 2021-08-08 22:46:59 +00:00
eclipse-cdt
eclipse-drjava
eclipse-ecj
eclipse-EPIC
eclipse-findbugs
eclipse-pydev *: fix tab vs. space issues, and comments according to the guide. 2021-10-16 11:51:39 +02:00
eclipse-shelled
hamcrest java/hamcrest: Add NO_ARCH 2021-07-01 04:44:27 +08:00
icedtea-web *: Rebuild lang/rust consumers after the 1.55.0 update 2021-09-19 11:03:23 +02:00
infobus Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
intellij
intellij-fsnotifier
intellij-pty4j
intellij-rubymine java/intellij-rubymine: update to 2021.2.3 2021-10-15 23:33:05 +02:00
intellij-ultimate java/intellij-ultimate: update to 2021.2 release. 2021-08-23 12:41:52 +02:00
jad
jai Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
jakarta-oro
jasmin
jattach
java3d graphics/mesa-libs: Bump reverse deps for libglvnd 2021-06-22 11:53:08 -07:00
java-cup
java-getopt
java-subversion
java-zoneinfo java/java-zoneinfo: Update to 2021b 2021-10-13 23:14:28 -07:00
javahelp
javamail
javavmwrapper
jaxen
jcalendar
jcckit
jcommon
jd-gui
jdk8-doc Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
jdk11-doc Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
jdk12-doc Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
jdom
jflex
jfreechart
jgraph
jgraphx
jikes
jlex
jlint
jmf Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
jode
jrosetta
jta Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
jtiger
jump
junit java/junit: Add NO_ARCH 2021-07-01 04:44:27 +08:00
jxgrabkey
lightweight-java-profiler
linux-oracle-jdk18 java/linux-oracle-jdk18: Update to 8u291 2021-05-08 13:45:20 -07:00
linux-oracle-jre18 Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
linux-oracle-serverjre10 Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
mmake
mx4j
netbeans java/netbeans: Add CPE information 2021-10-08 11:21:27 +00:00
netcomponents Deorbit RESTRICTED && NO_CDROM, part two. 2021-05-06 13:47:48 +02:00
netrexx
netty java/netty: Fix CPE information because current one is deprecated 2021-09-14 10:55:19 +00:00
openjdk7 *: fix tab vs. space issues, and comments according to the guide. 2021-10-16 11:51:39 +02:00
openjdk7-jre
openjdk8 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13 2021-10-16 14:22:03 +02:00
openjdk8-jre
openjdk11 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13 2021-10-16 14:22:03 +02:00
openjdk11-jre
openjdk12 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13 2021-10-16 14:22:03 +02:00
openjdk13 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13 2021-10-16 14:22:03 +02:00
openjdk14 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13 2021-10-16 14:22:03 +02:00
openjdk15 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13 2021-10-16 14:22:03 +02:00
openjdk16 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13 2021-10-16 14:22:03 +02:00
openjdk17 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13 2021-10-16 14:22:03 +02:00
openjfx14 graphics/mesa-libs: Bump reverse deps for libglvnd 2021-06-22 11:53:08 -07:00
phpeclipse
proguard
sablevm
sablevm-classpath
servingxml
sigar java/sigar: the port had been updated and improved (+) 2021-07-16 19:44:37 +00:00
springframework
springframework31
sqlitejdbc
trove4j java/trove4j: Drop maintainership 2021-05-19 20:56:14 +01:00
veditor
visualvm
wildfly10
wildfly11
wildfly12
wildfly13 java/wildfly13: fix plist (@sample) 2021-05-12 14:55:38 +03:00
wildfly14
wildfly15
wildfly16
wildfly17
wildfly18
wildfly90
Makefile java/openjdk17: Add a port of OpenJDK 17 2021-09-25 11:28:38 -07:00