Das Betriebssystem Solaris stammt noch aus den Beständen von Sun Microsystems und ist mittlerweile nicht mehr wirklich zeitgemäß. Entsprechend wenig überraschend war daher der Wunsch von Oracle, die Ports für Solaris/SPARC, Solaris/x64 und Linux/SPARC mit JEP 362 als deprecated zu markieren. Der nächste Schritt, sie endgültig loszuwerden, ist nun mit JEP 381 im JDK 15 gekommen. Es sei allerdings angemerkt, dass alte Java-Versionen (bis einschließlich JDK 14) auf alten Systemen allerdings unverändert laufen sollen, inklusive der entsprechenden Ports. Ziel des Ganzen ist es, sich um andere Features kümmern zu können. Die folgenden Änderungen wurden vorgenommen:
- Entfernung der folgenden Verzeichnisse:
- src/hotspot/cpu/sparc
- src/hotspot/os/solaris
- src/hotspot/os_cpu/solaris
- src/hotspot/os_cpu/linux_sparc
- src/hotspot/os_cpu/solaris_x86
- src/java.base/solaris
- src/java.desktop/solaris
- src/jdk.attach/solaris
- src/jdk.crypto.cryptoki/solaris
- src/jdk.crypto.ucrypto/solaris
- src/jdk.management/solaris
- src/jdk.net/solaris
- Entfernung oder Anpassung des C/C++-Codes mit den folgendenden Präprozessor-Definitionen und -Makros:
SPARC
,__sparc_
_,__sparc
,__sparcv9
SOLARIS
,__solaris__
SPARC_ONLY
,NOT_SPARC
SOLARIS_ONLY
,NOT_SOLARIS
SOLARIS_MUTATOR_LIBTHREAD
SPARC_WORKS
- Entfernung oder Anpassung von Java-Code, der auf Solaris oder SunOS prüft:
System.getProperty(“os.name”).contains(“Solaris”)
System.getProperty(“os.name”).startsWith("SunOS")
- Entfernung von spezifisch auf Solaris ausgelegten Features:
- Der OracleUcrypto Provider im Modul
jdk.crypto.ucrypto
- Die Socket-Option
jdk.net.SocketFlow
im Moduljdk.net
- Der OracleUcrypto Provider im Modul
- Entfernung oder Anpassung der Logik des Build-Systems in Bezug auf Solaris, SPARC und Oracle Studio, insb. die folgenden Werte und Variablen:
OPENJDK_{BUILD,TARGET}_OS = Solaris
OPENJDK_{BUILD,TARGET}_CPU_ARCH = sparc
TOOLCHAIN_TYPE = solstudio
is{Build,Target}Os = solaris
is{Build,Target}Cpu = sparcv9
- Entfernung oder Anpassung von Tests, die lediglich für Solaris oder SPARC relevant sind, bzw. nur auf einem dieser Systeme ausgeführt werden:
- jtreg-Tests, die
@requires os.family == "solaris"
@requires os.arch == "sparc"
@requires os.arch == "sparcv9"
- und
@requires (vm.simpleArch == "sparcv9")
nutzen
- Die Testbibliothek-Methoden
Platform.isSolaris()
bzw.Platform.isSparc()
und die Methoden selbst.
- jtreg-Tests, die
Darüber hinaus wurden alle Problemlisten aufgeräumt, die noch Solaris und SPARC erwähnen, genau wie alle Erwähnungen der Betriebssysteme Solaris und SPARC aus Kommentaren im Quellcode entfernt wurden. Manche dieser Referenzierungen können allerdings auch später noch wichtig sein, weshalb hier besondere Vorsicht geboten war. Entfernt wurde auch sämtliche Logik in der JIB-Konfigurationsdatei, die mit Solaris oder SPARC zusammenhängt und unter make/devkit
die Devkit-Creator-Skripte von Solaris.
Weitere Informationen zu diesem Java Enhancement Proposal gibt es wie immer im offiziellen JEP 381.