java/openjdk11: build with base clang on powerpc64*
Since clang 13, VMRegImpl::set_regName() compiles to nothing: it calls
name() through a null Register, which clang takes as unreachable. On
powerpc64 the empty function is just the traceback table marker, so java
dies with SIGILL right at startup. amd64 and aarch64 get away with the
same code because their empty function falls through into the next one.
-fno-delete-null-pointer-checks keeps the function body around.
java/openjdk{8,11}: Remove USE_LDCONFIG from ports
OpenJDK loads the JVM and other JDK libraries explicitly from the
correct directories, so there's no need for adding them to ldconfig.
PR: 297282
Reviewed by: jrm
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58841
java/openjdk11: Update to version 11.0.32
Includes the following FreeBSD specific fixes:
- Fix SIGBUS on sparc64 w/gcc 16 by reducing optimization level
- 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/openjdk11: 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/openjdk11/work/jdk11u-jdk-11.0.30-7-1/src/hotspot/os/bsd/os_perf_bsd.cpp:53:
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/openjdk11/work/jdk11u-jdk-11.0.30-7-1/src/hotspot/share/utilities/breakpoint.hpp:31:17:
note: previous declaration is here
31 | extern "C" void breakpoint();
| ^
1 error generated.
* All command lines available in
/wrkdirs/usr/ports/java/openjdk11/work/jdk11u-jdk-11.0.30-7-1/build/bsd-aarch64-normal-server-release/make-support/failure-logs.
=== End of repeated output ===
Similar fix as openjdk8/25/26.
I don't know why this does not happen on other architectures or freebsd
versions.
- changed post-patch to pre-configure, this makes it a lot easier to use "make
makepatch".
Reported-by: https://portsfallout.com/fallout?port=java%2Fopenjdk
Approved-by: silence on java@
https://lists.freebsd.org/archives/freebsd-java/2026-June/003715.html
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/openjdk11: reduce build log size
Suppress warnings with newer llvm versions.
If upstream doesn't fix the warnings it makes no sense to bother the
port with it.
In my test the log went from 30 MB to 3 MB.
No functional change intended.
Approved by: java@ mailing list
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/openjdk11: fix build on powerpc64*
Partially reverts 08cc50220f1d71f12d13d7e2c957a5679b02914d, segfaults are still
present on both powerpc64 and powerpc64le.
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/openjdk11: respect compiler and linker flags
pass CFLAGS, CXXFLAGS and LDFLAGS to the build
This enables more easily testing different build options.
fix build on gcc by passing --disable-precompiled-headers not only on powerpc64
"Without this, I was getting PCH-error from g++12 on my amd64 machine too."
PR: 279367
Tested by: poudriere
Approved by: maintainer timeout (java@)
java/openjdk11: remove custom LLVM - build with LLVM from base
Segfaults are no longer observed with current versions of LLVM 17 and 18
in base 13.3 and 14.1, so there is no need to pull such an old version
from ports to build.
For example build java/openjdk11 with LLVM from base and then build
java/eclipse and java/openjfx14 using java/openjdk11: build and run
without errors.
PR: 280056260319
Approved by: java (maintainer, timeout 14 days)
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/openjdk11: add new CUPS port option
UniFi controller is headless Java application that requires
OpenJDK that depends on full CUPS port. In fact, the latter originally
required cups-client port only that was later removed and merged
to full cups port, so openjdk11 now requires full CUPS.
However, OpenJDK really needs only some header files out of CUPS distribution
and officially supports building --with-cups-include instead of --with-cups.
This change introduces new CUPS port option to java/openjdk11
that defaults to ON to preserve current behaviour.
With CUPS option turned OFF it skips build dependency on full cups:
instead, it downloads and extracts its distfile and
builds --with-cups-include pointing to extracted cups distfile.
Default build not affected, so PORTREVISION not changed.
PR: 264792
Approved by: java (maintainer timeout, over 7 months)
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.
This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.
There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.
The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.
Approved by: portmgr (tcberner)
java/openjdk11: use LLVM 12 to build if the system compiler is LLVM 13 or newer
PR: 260319
Reported by: jonc@chen.org.nz
Approved by: java (maintainer timeout)
java/openjdk11: fix build on powerpc64*
Go back to using LLVM 12, bin/java built with LLVM 13 crashes with:
* For target jdk__packages_attribute.done:
A fatal error has been detected by the Java Runtime Environment:
SIGILL (0x4) at pc=0x0000000802e3d438, pid=28756, tid=149399
JRE version: (11.0.16+8) (build )
Java VM: OpenJDK 64-Bit Server VM (11.0.16+8-1, mixed mode, tiered, compressed
oops, serial gc, bsd-ppc64)
Problematic frame:
V [libjvm.so+0xe3d438] JVM_RaiseSignal+0x446bcc
java/openjdk11: Restore LLVM/Clang 13 workaround
This restores the previous LLVM/Clang 13 workaround. I had thought
the upstream changes would address this, but still seeing reports of
crashes when compiled with LLVM/Clang 13.
PR: 260319
Reported by: various
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
https://github.com/openjdk/jdk/commit/ae5615c6142a4dc0d9033462f4880d7b3c127e26
("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
java/openjdk11: add powerpc64le support
This mostly adds powerpc64le in places where there's only powerpc64.
PR: 251263
Approved by: java (maintainer timeout)
Multiple ports: improve regex compliance
These changes largely fall into just two categories:
1. Need textproc/gsed for GNU extensions
2. Extraneous escapes that can go away
For #1, there's a further subdivision into those that require autoconf magic
and those that can get away with BINARY_ALIAS=sed=${LOCALBASE}/bin/gsed.
-CURRENT will soon gain GNU extensions, but these will take longer to get to
all supported releases; we must switch them to gsed to ensure we're actually
properly building them as intended.
For #2, I've fixed these as I can and we should upstream these fixes.
PORTREVISION is bumped for all of the above, because we will almost
certainly build these differently when the replacements actually start
working.
These were all detected by the below-referenced exp-run [1]. The patch
included forbids many ordinary characters from being escaped, since we'll
later imbue those with special meanings. This has had the nice side effect
of picking up various things that we didn't handle properly, e.g. \t and \r
for tab and carriage return.
PR: 229925 [1]
Approved by: koobs (mentor)
Approved by: portmgr (blanket: trivial build fixes)
MFH: no (invasive risk)
Differential Revision: https://reviews.freebsd.org/D25185
java/openjdk11: add bootstrap and fix compilation for powerpc64 elfv2
Add bootstrap for powerpc64 elfv2.
Because of issue with macros in precompiled.hpp, --disable-precompiled-headers
is necessary.
Since openjdk compiles for elfv1 by default on big-endian ppc64, use a patch to
compile for elfv2.
I assume here that GCC will be used exclusively on ELFv1 systems and Clang on
ELFv2.
PR: 243182
Approved by: glewis (maintainer)
Add USES=xorg USES=gl, ports categories j
Add USES=xorg and USES=gl to ports in categories starting with 'j'
While here, try to sprinkle other USES (mostly gnome and sdl) as needed.
Fix build on FreeBSD 12.x/powerpc64 on POWER8+ machines
* Make sure has_mfdscr() returns false on these machines as using it on
FreeBSD 12.x will cause problems (e.g. SIGILL).
PR: 239368
Disable AoT except on amd64
This should be a no-op for all platforms except aarch64. AoT is disabled
on aarch64 due to crashes in internal JDK tests for that feature.
Prepare for aarch64 support
* Add necessary configure arguments for aarch64
* Add patches needed to compile on aarch64. These have been upstreamed but
are not in a release yet.
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
* Add a dependency on xrandr, since the latest version uses Xrandr.h
* Set NO_CCACHE to match configure being passed --disable-ccache
Fixes the build in poudriere and for people trying to use ccache
PR: 239387
Submitted by: Jonathan Chen <jonc@chen.org.nz>