It feels like it is java/openjdk8-jre that should provide this library, but
it'd require changes in Uses/java.mk to let consumers pick it up. Leave this
for java team for now.
Reported by: pkg-devel exp-run
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
Fixes:
In file included from /wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u422-b05.1/hotspot/src/os/bsd/vm/os_perf_bsd.cpp:61:
In file included from /usr/include/sys/user.h:51:
In file included from /usr/include/vm/pmap.h:88:
In file included from /usr/include/machine/pmap.h:48:
In file included from /usr/include/sys/systm.h:46:
/usr/include/machine/cpufunc.h:184:1: error: static declaration of 'breakpoint' follows non-static declaration
184 | breakpoint(void)
| ^
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u422-b05.1/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp:224:17: note: previous declaration is here
224 | extern "C" void breakpoint();
| ^
- bumped portrevision to easily spot if future bug reports are about this change.
PR: 281991
Approved by: early maintainer timeout java@ (the build is broken and the patch does not affect other architectures)
Obtained from: Mikael Urankar <mikael@> via Attachment 254105 in bug #255662
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
ran poudriere on FreeBSD 13.3/14.0/14.1/15.0
all failing ports mentioned in the issue are building fine now:
benchmarks/scimark2
devel/tijmp
sysutils/javaservicewrapper
www/jericho-html
PR: 264065
Differential Revision: https://reviews.freebsd.org/D46500
Clang 19 is now more strict about undefined integral expressions used as
constants in enum, which results in errors compiling java/openjdk8,
similar to:
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u422-b05.1/hotspot/src/share/vm/oops/cpCache.hpp:195:34: error: expression is not an integral constant expression
195 | option_bits_mask = ~(((-1) << tos_state_shift) | (field_index_mask | parameter_size_mask))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u422-b05.1/hotspot/src/share/vm/oops/cpCache.hpp:195:42: note: left shift of negative value -1
195 | option_bits_mask = ~(((-1) << tos_state_shift) | (field_index_mask | parameter_size_mask))
| ^
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u422-b05.1/hotspot/src/share/vm/code/dependencies.hpp:173:27: error: expression is not an integral constant expression
173 | all_types = ((1 << TYPE_LIMIT) - 1) & ((-1) << FIRST_TYPE),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u422-b05.1/hotspot/src/share/vm/code/dependencies.hpp:173:59: note: left shift of negative value -1
173 | all_types = ((1 << TYPE_LIMIT) - 1) & ((-1) << FIRST_TYPE),
| ^
In file included from /wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u422-b05.1/jdk/src/share/native/com/sun/java/util/jar/pack/bands.cpp:43:
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u422-b05.1/jdk/src/share/native/com/sun/java/util/jar/pack/constants.h:226:33: error: expression is not an integral constant expression
226 | AO_UNUSED_MBZ = (-1)<<13, // options bits reserved for future use.
| ^~~~~~~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u422-b05.1/jdk/src/share/native/com/sun/java/util/jar/pack/constants.h:226:37: note: left shift of negative value -1
226 | AO_UNUSED_MBZ = (-1)<<13, // options bits reserved for future use.
| ^
In openjdk11 and later, the (-1) constants have been replaced by the
unsigned variant (~0u), which fixes these errors.
PR: 280559
Approved by: glewis (maintainer)
MFH: 2024Q3
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
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
Building java/openjdk8 with lld 17 results in the following link error:
Making SA debugger back-end...
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol 'ps_getpid' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol 'ps_lcontinue' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol 'ps_lgetxmmregs' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol 'ps_lsetxmmregs' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
This is because lld 17 defaults to errors when undefined symbols are
referenced in linker version scripts. Since there are many of these in
openjdk 8, suppress the errors by adding -Wl,--undefined-version to the
--with-extra-ldflags configure option.
PR: 274106
Approved by: maintainer timeout (10 days)
MFH: 2023Q4
Since clang 16 (and gcc 11) the default C++ standard is now gnu++17.
Because java/openjdk8's build infrastructure does not explicitly set its
C++ standard, this leads to several errors:
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u362-b09.1/hotspot/src/share/vm/adlc/arena.cpp:82:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
register Chunk *k = _first;
^~~~~~~~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u362-b09.1/hotspot/src/share/vm/adlc/arena.cpp:96:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
register Chunk *k = _chunk; // Get filled-up chunk address
^~~~~~~~~
2 errors generated.
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u362-b09.1/hotspot/src/share/vm/adlc/adlparse.cpp:4567:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
register char c;
^~~~~~~~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u362-b09.1/hotspot/src/share/vm/adlc/adlparse.cpp:4765:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
register char c;
^~~~~~~~~
For newer versions of OpenJDK this has been fixed by removing the
'register' keyword, but upstream has not yet backported it to OpenJDK 8.
To work around the errors, define the register keyword away using a
command line flag.
PR: 271080
Approved by: glewis (maintainer)
MFH: 2023Q2
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u362-b09.1/hotspot/agent/src/os/bsd/symtab.c:266:14: warning: call to undeclared function 'find_section_by_name'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
opd_sect = find_section_by_name(".opd", fd, &ehdr, scn_cache);
^
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u362-b09.1/hotspot/agent/src/os/bsd/symtab.c:266:12: error: incompatible integer to pointer conversion assigning to 'struct elf_section *' from 'int' [-Wint-conversion]
opd_sect = find_section_by_name(".opd", fd, &ehdr, scn_cache);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bump PORTREVISION because the issue actually existed with previous clang versions, but didn't cause an error.
find_section_by_name() is copied from Linux's symtab.c.
During an exp-run for llvm 15 (see bug 265425), it turned out that
java/openjdk8 failed to build with clang 15:
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:64:30: error: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion]
INVOKE(SplashLoadMemory, NULL)(pdata, size);
^~~~
/usr/include/sys/_null.h:34:14: note: expanded from macro 'NULL'
#define NULL ((void *)0)
^~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:60:39: note: expanded from macro 'INVOKE'
#define INVOKE(name,def) _INVOKE(name,def,return)
^~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:57:25: note: expanded from macro '_INVOKE'
if (!proc) { return def; } \
^~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:68:28: error: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion]
INVOKE(SplashLoadFile, NULL)(filename);
^~~~
/usr/include/sys/_null.h:34:14: note: expanded from macro 'NULL'
#define NULL ((void *)0)
^~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:60:39: note: expanded from macro 'INVOKE'
#define INVOKE(name,def) _INVOKE(name,def,return)
^~~
/wrkdirs/usr/ports/java/openjdk8/work/jdk8u-jdk8u352-b08.1/jdk/src/share/bin/splashscreen_stubs.c:57:25: note: expanded from macro '_INVOKE'
if (!proc) { return def; } \
^~~
2 errors generated.
Indeed, instead of the pointer value NULL, the integer value 0 should be
used.
PR: 268223
Approved by: portmgr (tcberner)
MFH: 2022Q4
See also <https://bugs.openjdk.org/browse/JDK-8247766>.
Even though the upstream fix has been applied to this version of the
JDK, some users still report the assertion "guarantee(val < (1U <<
nbits)) failed: Field too big for insn" occurring, when it is built with
recent versions of clang.
Therefore, restore the workaround that uses clang 12 to build the JDK on
aarch64.
PR: 264065
MFH: 2022Q3
Commit b7f05445c0 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)
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)
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
Running java or javac executables fails with:
Error: dl failure on line 910
Error: failed /usr/local/openjdk8/jre/lib/ppc64le/server/libjvm.so, because /usr/local/openjdk8/jre/lib/ppc64le/server/libjvm.so: Undefined symbol "_ZN5frameC1EPlPh"
$ make checksum WITH=TEST
===> License GPLv2 accepted by the user
===> openjdk8-8.302.08.1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by openjdk8-8.302.08.1 for building
=> No SHA256 checksum recorded for jtreg4.1-b08.tar.gz.
=> No suitable checksum found for jtreg4.1-b08.tar.gz.
=> SHA256 Checksum OK for battleblow-jdk8u-8.302.08.1-jdk8u302-b08.1_GH0.tar.gz.
*** Error code 1
Reported by: Philipp Ost (via ports@ list)