1 This is originally derived from the pkgsrc-joyent set for openjdk11,
2 considerably modified. Cut from the jdk15 patches as of jdk15+32.
4 See also README-zero.txt for note on a project zero variant.
8 Fixed the patch for src/java.base/unix/classes/java/lang/ProcessImpl.java
9 which fixes the startup hang in jshell and illuminate (and hopefully
10 the minecraft reports)
12 Cleanup: missed the dropping of TIERED in 17+8, it's now
13 COMPILER1_AND_COMPILER2
17 Reinstate make/data/charsetmapping/stdcs-solaris, removal broke the
19 See illumos-port-23.patch
23 Needed to include <limits.h> in
24 src/java.base/share/native/libjava/jni_util.c
25 to make sure that INT_MAX is defined. See illumos-port-22.patch
27 20+29, 20+30, 20+31, 20+32, 20+33
29 No changes; now in rampdown phase 2
37 Forked off, now in rampdown phase 1.
39 VM_Version::page_size_count() has been removed, but it's only returning
40 a constant so we can easily handle that.
48 os::supports_sse() has been removed
52 ExtendedDTraceProbes has been removed. Which removes
53 DTrace::set_extended_dprobes() as well.
57 Now need to force gnu strip via setting STRIP
61 Remove os::dll_file_extension()
63 Modest amount of patch noise
71 Boot jdk updated to jdk19.
73 Remove patch for hsdis Makefile, as it's been removed.
81 src/java.base/unix/native/libnio/ch/FileChannelImpl.c
82 has been removed, so don't patch it. However:
84 FileDispatcherImpl has been split out into a shared
85 UnixFileDispatcherImpl plus platform-specific FileDispatcherImpl, so
86 we need our own implementation, and that includes parts of what would
87 have been FileChannelImpl.c, the new files are
88 src/java.base/solaris/classes/sun/nio/ch/FileDispatcherImpl.java and
89 src/java.base/solaris/native/libnio/ch/FileDispatcherImpl.c, and all
90 we need to do is implement our copy of transferTo0 from the old
91 FileChannelImpl.c, see illumos-port-21.patch
93 Remove tribblix-wait.patch, the patched file is no more.
101 Bit of patch noise, update cflags from c99 (in our case, gnu99) to c11
106 Remove ProcDebuggerLocal.java, the whole ProcDebugger has gone. So
107 remove all solaris support from HotSpotAgent.java as a
108 consequence. This also means that libsaproc is no more, and
109 tribblix-demangle4.patch isn't needed either
111 CodeCache::find_blob_unsafe() is now just CodeCache::find_blob()
113 Fixes from build attempt with clang - comments in .S use # not /;
114 register specifier is deprecated; use the right linker flags.
122 page_size() has been centralised
124 Remove more 32-bit code from os_solaris_x86.cpp
126 Tidying up old 32-bit code
130 Quite a lot of changes here.
132 The layout of the os class has changed a bit
133 Needed to patch os.hpp, see illumos-port-20.patch
134 but lots of other changes needed.
136 Remove some 32-bit code from os_solaris_x86.cpp
138 Move correct_stack_boundaries_for_primordial_thread() which is in
139 os::Solaris from the shared thread.cpp into our own os_solaris.cpp
141 Use pthread variants directly in attachListener_solaris.cpp
143 More use of the posix PlatformMutex
145 Remove comment-only patch to os.hpp to simplify maintenance
147 Remove illumos-port-8.patch, as the platform guard was reworked to be
150 Test builds with different C standards. With -std=gnu11, everything is
151 fine; with -std=c11 or c99, build fails with our own headers (around
152 signals, eg sigaction and friends, and presumably more).
154 Remove src/hotspot/os_cpu/solaris_x86/count_trailing_zeros_solaris_x86.hpp
156 Tidy up atomic_solaris_x86.hpp, remove Studio support;
157 solaris_x86_64.il can also be removed.
159 Tidy up bytes_solaris_x86.hpp, remove 32-bit and Studio support.
163 Remove print_jni_name_prefix_on, centralized in os_posix.cpp
164 Merge illumos-port-14.patch into the main patch to simplify the patch
167 Tribblix updates mean I'm now using gcc10 rather than gcc7
174 Remove now unused mutex_scope and cond_scope.
175 Remove UsePthreads, as it's now the only option.
176 Clean up set_mutex* and set_cond* now we're exclusively pthreads.
180 Remove os::print_statistics()
182 Remove os_share_solaris.hpp
186 SuspendResume is no longer in os::, needs illumos-port-19.patch
188 os::message_box has been centralized
190 Removed now unused unpackTime() and compute_Abstime().
194 Some big breaking changes here.
196 In os_posix.cpp, some things like PlatformMutex, PlatformEvent,
197 PlatformMonitor have dropped the os:: namespace. The definitions have
198 been centralized, posix uses _event whereas solaris used _Event (like
199 windows does). And the posix variants all use pthreads, whereas
200 solaris used native threads, which leads to signature mismatches.
202 So there are a couple of changes. First, replace mutex_t with
203 pthread_mutex_t. Second, assign directly rather than setting the
204 symbols dynamically, which used to be done as a way of switching
205 between thread-based and lwp-based synchronization.
207 And with that, in fact, we could use the central posix versions of the
210 And do the same for the cond_ functions as well as the mutex_ functions.
212 Remove illumos-port-1.patch and roll the pthreads versions in by default
214 ThreadCrashProtection has moved out of os_posix.{c,h}pp which means we
215 have to move stuff around.
217 mutex.hpp, park.hpp, threadCrashProtection.hpp headers reworked
218 -> illumos-port-18.patch
224 os::infinite_sleep() has been centralised
227 src/java.base/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java
228 Looking at the various implementations of this, the solaris one
229 appears to be old and could simply be updated to use common code like
233 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/proc/ProcAddress.java
234 removed getValue(), so use asLongValue() in
235 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebuggerLocal.java
237 The reproducible builds by default stuff breaks us because it assumes
238 it will always be enabled and appears not to be. Needs
239 --with-source-date=current
240 and also gnu date, so add DATE=/usr/gnu/bin/date to configure
242 Setting --with-source-date also breaks copyright year generation which
245 No need to have a Solaris switch to force fork1(), as of S10 that's
246 the default behaviour.
250 Build broken by https://www.illumos.org/issues/14418. That did 2
251 things - (1) exposed memcntl and meminfo by default, and (2) changed
252 the signature for memcntl from caddr_t to void so there's a
253 mismatch. The fix adopted is to modify the internal java signature for
254 memcntl to the new version, which still allows builds on older
255 releases as the old definition in sys/mman.h was effectively invisible
258 Rename thread_solaris_x86.{c,h}pp -> javaThread_solaris_x86.{c,h}pp
259 mv thread_solaris_x86.cpp javaThread_solaris_x86.cpp
260 mv thread_solaris_x86.hpp javaThread_solaris_x86.hpp
261 sed -i s:_THREAD_:_JAVATHREAD_: javaThread_solaris_x86.hpp
262 sed -i s:runtime/thread.inline.hpp:runtime/javaThread.hpp:
263 javaThread_solaris_x86.cpp
264 and fix up includes in os_solaris.cpp
266 The checkedNatives stuff now causes compilation failures, so remove it
275 Starting fairly clean
279 env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin bash ./configure \
280 --enable-unlimited-crypto --with-boot-jdk=/usr/jdk/instances/jdk19 \
281 --with-native-debug-symbols=none \
282 --with-toolchain-type=gcc \
284 --disable-warnings-as-errors \
285 --enable-deprecated-ports=yes \
286 --with-source-date=current \
288 DATE=/usr/gnu/bin/date \
289 STRIP=/usr/gnu/bin/strip
291 env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin gmake all