This OpenJDK implementation may require procfs(5) mounted on /proc for some
applications.
If you have not done it yet, please do the following:
mount -t procfs proc /proc
To make it permanent, you need the following lines in /etc/fstab:
proc /proc procfs rw 0 0
Reason:
Version JAVA_DEFAULT is updated from 8 to 21.
No specific action should be needed, just a heads-up to test before
deploying to production as this is quite a big step in versions.
java/openjdk*: fix kqueue selectors on big-endian
KQueue.getDescriptor() reads the kevent ident, a uintptr_t, as a 32-bit
int. On big-endian that is the zero high half, so every ready event is
dropped and Selector.select() returns at once with nothing selected.
Netty servers like OpenSearch then spin forever rebuilding the selector.
Read the field at its full width instead.
java/openjdk17: Version 17.0.21.0.3 more cert fixes
Update to latest upstream patch version to address more issues with the
eMudhra certificate incident.
See also: https://openjdk.org/emudhra
MFH: 2026Q4
Security: CVE 2026-114820
Security: JDK-8395690
Sponsored by: The FreeBSD Foundation
java/openjdk17: Version 17.0.21.0.2 including CA fixes
Upgrade port to latest upstream, including fixes for eMudhra CA
certificate issues.
MFH: 2026Q4
Sponsored by: The FreeBSD Foundation
java/openjdk17: Update to version 17.0.20
Includes the following FreeBSD specific fixes:
- Set wxneeded flag on executables on FreeBSD.
- Fix build with clang 22.
Sponsored by: The FreeBSD Foundation
*/*: Use C.UTF-8 locale
Ports 02f27a83b44d fixed the ports tree to the C locale so it would work
correctly in environments where users use a locale that isn't compatible
with the C locale, e.g. xx_YY.UTF-8 where [A-Z] includes more than just
upper case letters. USE_LOCALE was introduced to let ports use another
locale if they needed it. The C.UTF-8 locale was created later on to be
mostly compatible with the C locale.
Switch the ports tree locale to C.UTF-8 and remove USE_LOCALE. The
world has moved to Unicode so all ports either require it or know how to
build correctly in a Unicode environment.
PR: 295945
Exp-run by: antoine
java/openjdk17: fix build on freebsd 16/aarch64
=== Output from failing command(s) repeated here ===
* For target hotspot_variant-server_libjvm_objs_os_perf_bsd.o:
In file included from
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.18-8-1/src/hotspot/os/bsd/os_perf_bsd.cpp:38:
In file included from /usr/include/sys/user.h:52:
In file included from /usr/include/vm/pmap.h:88:
In file included from /usr/include/machine/pmap.h:46:
In file included from /usr/include/sys/systm.h:46:
/usr/include/machine/cpufunc.h:35:1: error: static declaration of 'breakpoint'
follows non-static declaration
35 | breakpoint(void)
| ^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.18-8-1/src/hotspot/share/utilities/breakpoint.hpp:31:17:
note: previous declaration is here
31 | extern "C" void breakpoint();
| ^
(Only the first 15 lines of the commit message are shown above )
all: drop support for FreeBSD 13, mips and risc64sf
Reviewed by: many (*)
Differential Revision: https://reviews.freebsd.org/D55624
Differential Revision: https://reviews.freebsd.org/D55642 (merged in from bofh)
many (*)
acm arrowd brooks cmt dch decke dinoex eduardo fluffy fuz gahr garga
jbeich joerg jrm kai kenrap martymac matthew mfechner michaelo mizhka
nobutaka pkubaj se tagattie thj
Anton Saietskii
GenericRikka
Gert Doering
Jan Bramkamp
Oleh Hushchenkov
Oleksandr Kryvulia
Ralf van der Enden
Yamagi
desktop kde python tcltk office
java/openjdk*: Fix possible race after configure
Some setups could fail when building with poudriere bulk with a message
about the configuration was out of date. Since configure is run as part
of the build in any case, we don't need the explicit configure check in
the openjdk build system, so we disable it.
Fix originally proposed by jonc@chen.org.nz.
Since this doen not change the port, only whether it will build or not,
I have not bumped the PORTREVISION for this change.
PR: 294199
Reported by: nxjoseph
Reviewed by: glewis
Approved by: glewis
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56289
java/openjdk8-20: Bootstrap from prebuilt packages
Use prebuilt known good packages (derived from the official pkgs)
instead of depending on the previous version of the OpenJDK.
This patch fixes bootstrapping for openjdk8-20 except 18 which is
expired, and 19 which has been dealt with before.
PR: 291872
Reviewed by: fuz (mentor)
Approved by: fuz (mentor)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54683
java/openjdk17: fix parallel build on 14.3
Got a report that build is also flapping on 14.3, so extent the range
of OSVERSIONs.
Allow parallel jobs, but limited to the number of jobs that is
currently used (and works) on the official FreeBSD pkg build cluster.
PR: 290148
java/openjdk18: fix flapping builds
Similar to the fix in openjdk17.
For more information and lessons learned see ports commit
fa96c62b2e3cacce280053fda46dedd8b84a1018 and the follow-up commits.
java/openjdk17: generate more output during compilation
Prevents:
Creating support/modules_libs/java.base/server/libjvm.so from 989 file(s)
=>> Killing runaway build after 7200 seconds with no output
The cmdlines output can also help in debugging the flapping builds if a
race condition is the cause of the 'nm' error. (see previous commits)
Reported-by:
https://lists.freebsd.org/archives/freebsd-pkg-fallout/2025-September/807751.html
Plus, use --with-num-cores instead of --with-jobs. With-num-cores still
lets configure override (reduce) the number of parallel jobs if the
memory size is limited. With-jobs sets an absolute number.
See {WRKSRC}/doc/building.md for more information.
Reported-by:
https://lists.freebsd.org/archives/freebsd-java/2025-September/003314.html
Bump portrevision so future failures are easy to trace back to specific
port version.
java/openjdk17: fix build without MAKE_JOBS_UNSAFE
Put back _MAKE_JOBS with a description why it is set empty.
Fixes:
===> Building for openjdk17-17.0.16+8.1_2
Error: 'make -jN' is not supported, use 'make JOBS=N'
NB: this error came from work/jdk17u-jdk-17.0.16-8-1/make/InitSupport.gmk:119
Bump portrevision so future failures are easy to trace back to specific
port version.
Reported-by:
https://lists.freebsd.org/archives/freebsd-ports/2025-September/008453.html
java/openjdk17: pass --with-jobs to honour MAKE_JOBS_NUMBER
The configure script detects cores and memory and calculates itself how many
jobs it uses.
checking for number of cores... 28
checking for memory size... 130926 MB
checking for appropriate number of jobs to run in parallel... 28
Override this by the variables of our ports framework.
If this fixes the flapping builds I want to apply it to the other openjdk*
ports.
Bump portrevision so future failures are easy to trace back.
Suggested in:
https://lists.freebsd.org/archives/freebsd-java/2025-September/003304.html
java/openjdk17: try to fix the flapping build
Build is flapping.
The error that pops up is similar to this, but the filename can change:
nm: 'abstractCompiler.o': Invalid argument
Sometimes the build runs fine and I can't reproduce the failure locally
on a 4-CPU RPI4.
If this stabalizes the build for openjdk17 I will apply it to other
openjdk* ports too.
Mind that openjdk23 and -24 already have this change and don't seem to fail.
Bumped portrevision so I can easily see if future failures use this change
or not.
Reported by: https://portsfallout.com/fallout?port=java%2Fopenjdk17%24
Reviewed
by: https://lists.freebsd.org/archives/freebsd-java/2025-September/003296.html
openjdk: remove need for fdescfs(5) and probably procfs(5)
Implement getCommittedVirtualMemorySize() directly using sysctl
kern.proc.vmmap
Implement getOpenFileDescriptorCount() directly using sysctl
kern.proc.nfds
Note on openjdk17 use closefrom where possible (note this use case is
only in openjdk 17, 21, 23 and 24)
Remove the message about the use of fdescfs(5) as this is not needed
for sure, keep the information about procfs(5) as I have not analysed
enough the source code to make sure it is not used anywhere else, but
I don't think it is.
java/openjdk*: Update pkg-message information about fdescfs and procfs
OpenJDK installation inform that fdescfs(5) and procfs(5) should be
mounted when using OpenJDK.
After doing some test and some traces, it seems that this should be
no so usefull, some applications will require it, but most of java
applications doesn't seems to suffer to work or performance when
such pseudo FS is not mounted.
So this change request permit to let local administrator to decide if
it is really needed or not.
Sponsored by: Entersekt (previously Modirum MDpay)
Sponsored by: Klara Inc.
Approved by: 0mp (mentor)
PR: 283364
java/openjdk8 java/openjdk11 java/openjdk17 java/openjdk18 java/openjdk19
java/openjdk20 java/openjdk21 java/openjdk22: disable warnings as errors
Generally disable warnings-as-errors for all openjdk ports, removing all
the conditionals we have now for particular architectures and/or
compilers. It does not make sense to have this on by default, unless you
are an upstream maintainer.
PR: 281188
Approved by: maintainer timeout (2 weeks)
MFH: 2024Q3
java/openjdk17: fix build with clang 19
Clang 19 has a number of new warnings, and because java/openjdk17
compiles with -Werror by default, it results in errors similar to:
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.12-7-1/src/hotspot/os/posix/signals_posix.cpp:1681:20:
error: cast from 'void (*)(int, siginfo_t *, ucontext_t *)' (aka 'void (*)(int,
__siginfo *, __ucontext *)') to 'void (*)(int)' converts to incompatible
function type [-Werror,-Wcast-function-type-mismatch]
1681 | act.sa_handler = (void (*)(int)) SR_handler;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
I propose to disable warnings-as-errors for this port, similar to what
is already done for openjdk8 and openjdk11. It does not make sense to
have this on by default, unless you are an upstream maintainer.
PR: 280561
Approved by: glewis (maintainer)
MFH: 2024Q3
all: drop support for FreeBSD 13.2 which reached EOL today
Thanks again to jbeich for noticing various things I overlooked.
Reviewed by: acm, ashish, eduardo, ehaupt, eugen, jbeich, martymac, mat,
nobukata, sunpoet, tagattie, yuri, arrowd, kde
Differential Revision: https://reviews.freebsd.org/D45141
java/openjdk*: Allow users to specify an alternative cacerts file
Similar to certificate management with certctl(8) users can use custom
enterprise CAs. These need to be assembled into a custom cacerts file.
Therefore, an admin can install a custom truststore to an arbitrary
location and have the OpenJDK port symlink to it by adding
OPENJDK_SYMLINK_CACERTS to make.conf.
E.g., OPENJDK_SYMLINK_CACERTS=/usr/local/etc/ssl/cacerts.
PR: 229329
Approved by: jrm (mentor), otis (mentor), glewis
Differential Revision: https://reviews.freebsd.org/D42720
*/*: Sunset 12.4-RELEASE/12-STABLE from ports tree
- Remove all references to defunct ARCH arm
- Remove all references to defunct ARCH sparc64
- Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64
ARCH
- Remove sysutils/afbinit requires defunct sparc64 ARCH
- Remove all references to bktr driver
- Remove all references to defunct FreeBSD_12
- Remove all references to OSVERSION/OSREL corresponding to 12
- Remove conditionals in Mk/Uses/cabal.mk
- Remove sparc reference from Mk/Uses/qt-dist.mk
- Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64
- Remove BROKEN_FreeBSD_12* from:
- Remove OpenSSL patches from:
- Remove conditional flags for OSVERSION >= 1300000 to fixed flags.
Also move conditional flags for non sparc64/arm ARCH to fixed flags.
Reviewed by: brooks, jbeich, rene, salvadore
Differential Revision: https://reviews.freebsd.org/D42068
java/openjdk17: fix build on powerpc64*
Backport the patch from openjdk19 to fix the recently appearing error:
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.9-9-1/src/hotspot/os_cpu/bsd_ppc/os_bsd_ppc.cpp:194:29:
error: no member named 'is_safefetch_fault' in 'StubRoutines'
if (pc && StubRoutines::is_safefetch_fault(pc)) {
~~~~~~~~~~~~~~^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.9-9-1/src/hotspot/os_cpu/bsd_ppc/os_bsd_ppc.cpp:195:52:
error: no member named 'continuation_for_safefetch_fault' in 'StubRoutines'
os::Posix::ucontext_set_pc(uc,
StubRoutines::continuation_for_safefetch_fault(pc));
~~~~~~~~~~~~~~^
java/openjdk17: fix build with lld 17
Building java/openjdk17 with lld 17 results in the following link errors:
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZ21WB_HandshakeWalkStackE16TraceSelfClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZ26WB_AsyncHandshakeWalkStackE16TraceSelfClosure' failed: symbol not
defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZN12JvmtiEnvBase27check_for_periodic_clean_upEvE28ThreadInsideIterationClosure'
failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZN15G1RemSetSummary6updateEvE11CollectData' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZN16SATBMarkQueueSet22set_active_all_threadsEbbE22SetThreadActiveClosure'
failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZN16SATBMarkQueueSet23abandon_partial_markingEvE25AbandonThreadQueueClosure'
failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZN18G1ConcurrentRefine30get_and_reset_refinement_statsEvE12CollectStats'
failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZN19G1DirtyCardQueueSet12abandon_logsEvE23AbandonThreadLogClosure' failed:
symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZN19G1DirtyCardQueueSet16concatenate_logsEvE27ConcatenateThreadLogClosure'
failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZN19G1DirtyCardQueueSet30get_and_reset_refinement_statsEvE12CollectStats'
failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol
'_ZTVZN7Threads25change_thread_claim_tokenEvE11ResetClaims' failed: symbol not
defined
(Only the first 15 lines of the commit message are shown above )
java/openjdk17: Fix the build on some aarch64 machines
* Disable CompressedClassPointers on aarch64. This fixes the build
on some aarch64 machines where it previously failed, e.g. RPI4,
and doesn't seem to affect the build on others (AWS aarch64 hardware).
This is based on and uses a patch initially created by ronald@
PR: 260187
Tested by: ronald@
java/openjdk17: fix build with clang 15
During an exp-run for llvm 15 (see bug 265425), it turned out that
java/openjdk17 failed to build with clang 15:
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:374:41:
error: passing arguments to a function without a prototype is deprecated in all
versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
proxies = (*g_proxy_resolver_lookup)(resolver, uri, NULL, &error);
^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:393:63:
error: passing arguments to a function without a prototype is deprecated in all
versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
(*g_network_address_parse_uri)(proxies[i], 0,
^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:398:70:
error: passing arguments to a function without a prototype is deprecated in all
versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
phost = (*g_network_address_get_hostname)(conn);
^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:399:66:
error: passing arguments to a function without a prototype is deprecated in all
versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
(Only the first 15 lines of the commit message are shown above )
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
cleanup: remove expired versions of OpenJDK (12 through 16)
Adjust ports depending on expired versions of OpenJDK:
- biology/snpeff: 12+ -> 17+
- devel/RStudio: 12 -> 11
- www/closure-compiler: 13 -> 11+
Allow java/openjdk17 to use java/openjdk17-bootstrap on i386
too, this builds just fine on 13.1-i386
Remove jdk12-doc as it is no longer relevant.
Clean up Java version calculations in bsd.java.mk
Reviewed by: jwb, java (glewis)
Differential Revision: https://reviews.freebsd.org/D35280
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()) |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(Only the first 15 lines of the commit message are shown above )
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
(Only the first 15 lines of the commit message are shown above )
java/openjdk17: Fix libfontmanager linkage
* Backport the fix from jdk17u so that --with-harfbuzz=system adds
-lharfbuzz when linking libfontmanager.so
Reported by: barulheira@gmail.com
java/openjdk17: Remove enable-aot configure argument.
The Experimental AOT and JIT Compiler were remove in OpenJDK17:
https://openjdk.java.net/jeps/410
Remove this configure argument as it causes build failure on aarch64:
configure: error: unrecognized options: --enable-aot
Approved by: portmgr (build fix blanket)