See also README-zero.txt for note on a project zero variant.

JDK 24 now that jdk23 has been branched off.

24+28, 24+29

Now in rampdown. No changes.

24+27

Need to use gnu sort, as something is trying to sort invalid data.

IMPORTANT: note that the build target has changed, from 'all' to
'product-images', as 'all' tries to build a static image which doesn't
work.

Still more patch noise.

Cleanup: remove deprecated DontYieldALot

24+26

More patch noise due to Security Manager cleanup.

Cleanup: remove audio solaris 7 compatibility code

Cleanup: use pset_getloadavg() directly

Cleanup: allow fastdebug builds, see fastdebug.patch

24+25

Lots of patch noise. Much of it due to cleanup following the Security
Manager removal.

Cleanup: the hack in UnixPath.java to rewrite EINVAL to ELOOP, which
was a workaround for S10U3 and earlier, has been removed.

The src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Config.java
hunk that replaces $ISA was reworked to be unconditional, as the SM
cleanup also removed the osname and osarch we formerly switched on.

NOTE: AccessController.doPrivileged() cleaned up in
src/java.base/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java
as the equivalent Linux call has now been removed.

24+24

This is a major change.

The Security Manager is effectively removed. Lots of patch noise
associated with that. Removed the calls to checkPermission(),
GetPropertyAction.privilegedGetProperty(), and
AccessController.doPrivileged(). Removed checkAccess() from the patch
for src/java.base/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java

NOTE: AccessController.doPrivileged() retained, in
src/java.base/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java
because the equivalent Linux call hasn't been removed.

Fixed up the patch for
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java
it failed to apply because 32-bit windows has been removed, but we shouldn't
have been adding 32-bit Solaris back. And remove the file
SolarisX86JavaThreadPDAccess.java entirely

os::print_tos_pc() has been centralized, so remove our copy.

24+23

Trivial patch noise

24+22

Cleanup: remove the historic OPENWIN font locations from fontpath.c

Dropped the png patch, like we did with all the other releases this
update cycle.

Minor noise in UnixNativeDispatcher.c

In src/jdk.attach/solaris/classes/sun/tools/attach/VirtualMachineImpl.java
readErrorMessage() has been renamed readMessage()

Need to include sys/filio.h for FIONREAD in
src/java.base/unix/native/libnio/ch/UnixFileDispatcherImpl.c
see illumos-port-29.patch

24+21

No changes.

24+20

os::Posix::realpath() is now just os::realpath()

Remove our copies of os::current_file_offset() and os::seek_to_file_offset()
as they have been centralised.

Cleanup: remove unused JSIG_VERSION_1_4_1 define

Cleanup: remove unused SOLARIS_MUTATOR_LIBTHREAD hunk

24+19

Needs jdk23 as the boot jdk now.

osThread has been completely restructured. This splats 3 places:
osThread_solaris.{c,h}pp os_solaris.cpp vmStructs_solaris.hpp
I've ignored the os_solaris.cpp because in Linux they only changed the cast
type, and we don't have that at all.
I've ignored vmStructs for now as I don't quite follow what's needed.
I've followed the Linux changes up to a point, but different platforms
are quite divergent.

24+17, 24+18

Trivial patch noise

Cleanup: Fix TestMemoryAllocationLogging failures. The tests were
looking for specific output for mmap and munmap failures.

Cleanup: jdk.internal.vm.ci/share/classes/jdk/vm/ci/services/Services.java
needs to know about Solaris.

Cleanup: remove the epoll provider code, it wasn't used on illumos and
doesn't compile on Solaris.

24+16

Trivial patch noise

Cleanup: src/hotspot/os/solaris and src/hotspot/os_cpu/solaris_x86
split out into separate restore patches.

24+15

Tiny amount of patch noise.

24+14

A lot of patch noise, mostly due to a lot of Makefiles having clang
warnings tweaked, and some whitespace cleanup.

24+13

In src/jdk.attach/solaris/classes/sun/tools/attach/VirtualMachineImpl.java:270: warning: [restricted] System.loadLibrary(String) is a restricted method.
        System.loadLibrary("attach");

Needed to add
@SuppressWarnings("restricted")
like other platforms have.

24+9, 24+10, 24+11, 24+12

Trivial patch noise.

24+8

In os_solaris.cpp, os::pd_free_memory() has been removed and
os::pd_disclaim_memory() added. Looking at AIX, both were no-ops. On
Linux, they're quite different. On BSD, the implementation is
identical. So what I'll do is keep the same implementation, just
changing the name and signature.

24+7

No changes.

Cleanup: Removed last remnants of extended_FILE_stdio, it's unused as 32-bit
only, and the code to enable it had already been removed.

24+6

No changes.

24+5

Trivial patch noise.

24+4

Offsets due to os::committed_in_range() implementation. The guards
are plain wrong, so needed to correct them in illumos-port-28.patch

24+3

Wants an os::rss() implementation; return 0 for now, just like AIX does
(and other platforms return 0 as the "don't know" answer).

24+2

Trivial patch noise.

24+0, 24+1

Start with no changes from 23+26.

Build:

env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin bash ./configure \
--enable-unlimited-crypto --with-boot-jdk=/usr/jdk/instances/jdk23 \
--with-native-debug-symbols=none \
--with-toolchain-type=gcc \
--disable-dtrace \
--disable-warnings-as-errors \
--with-source-date=current \
--with-jobs=4 \
DATE=/usr/gnu/bin/date \
SORT=/usr/gnu/bin/sort \
STRIP=/usr/gnu/bin/strip

env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin gmake product-images