JEP 381: Remove the Solaris and SPARC Ports
Удаление портов Solaris и SPARC
| Ответственный | Mikael Vidstedt |
| Тип | Feature |
| Область | Implementation |
| Статус | Closed / Delivered |
| Выпуск | 15 |
| Компонент | hotspot / other |
| Обсуждение | jdk dash dev at openjdk dot java dot net |
| Трудоёмкость | M |
| Длительность | M |
| Связан с | JEP 362: Deprecate the Solaris and SPARC Ports |
| 8272878: JEP 381 cleanup: Remove unused Solaris code in sun.font.TrueTypeGlyphMapper | |
| Рецензенты | Alan Bateman, Bradford Wetmore, Dalibor Topic, Daniel Daugherty, David Holmes, Kim Barrett, Sean Mullan, Stuart Marks |
| Одобрен | Mark Reinhold |
| Создан | 2020/03/28 01:22 |
| Обновлён | 2026/08/05 23:00 |
| Задача | 8241787 |
Аннотация
Удалить исходный код и поддержку сборки для портов Solaris/SPARC, Solaris/x64 и Linux/SPARC. Эти порты были объявлены Deprecated for Removal (устаревший, будет удалён) в JDK 14 с явным намерением удалить их в одном из будущих выпусков.
Цели
- Удалить весь исходный код, специфичный для операционной системы Solaris
- Удалить весь исходный код, специфичный для архитектуры SPARC
- Обновить документацию и комментарии в исходном коде для будущих выпусков
Что не является целью
Цель этого JEP — не менять статус затронутых портов в каком-либо из предыдущих выпусков. Самый ранний выпуск, в который может быть включён этот JEP, — JDK 15.
Мотивация
Многие проекты и возможности, которые сейчас находятся в разработке, например Valhalla, Loom и Panama, требуют значительных изменений в коде, специфичном для архитектуры процессора и операционной системы. Отказ от поддержки портов Solaris и SPARC позволит участникам сообщества OpenJDK ускорить разработку новых возможностей, которые будут двигать платформу вперёд.
Описание
Мы удалим или скорректируем весь код, логику системы сборки и документацию, связанные с Solaris и SPARC.
- Удалить каталоги:
src/hotspot/cpu/sparcsrc/hotspot/os/solarissrc/hotspot/os_cpu/solarissrc/hotspot/os_cpu/linux_sparcsrc/hotspot/os_cpu/solaris_x86src/java.base/solarissrc/java.desktop/solarissrc/jdk.attach/solarissrc/jdk.crypto.cryptoki/solarissrc/jdk.crypto.ucrypto/solarissrc/jdk.management/solarissrc/jdk.net/solaris
- Удалить или скорректировать код на C/C++, защищённый следующими определениями и макросами препроцессора:
SPARC,__sparc__,__sparc,__sparcv9SOLARIS,__solaris__SPARC_ONLY,NOT_SPARCSOLARIS_ONLY,NOT_SOLARISSOLARIS_MUTATOR_LIBTHREADSPARC_WORKS
- Удалить или скорректировать код на Java, который проверяет наличие Solaris или SunOS, например:
System.getProperty(“os.name”).contains(“Solaris”)System.getProperty(“os.name”).startsWith("SunOS")
- Удалить возможности, специфичные для Solaris:
- Провайдер
OracleUcryptoв модулеjdk.crypto.ucrypto(8234870) - Параметр сокета
jdk.net.SocketFlowв модулеjdk.net(8234871)
- Провайдер
- Удалить или скорректировать логику системы сборки (automake и т. д.), связанную с Solaris, SPARC или Oracle Studio, а именно следующие переменные и значения:
OPENJDK_{BUILD,TARGET}_OS=SolarisOPENJDK_{BUILD,TARGET}_CPU_ARCH=sparcTOOLCHAIN_TYPE=solstudiois{Build,Target}Os=solarisis{Build,Target}Cpu=sparcv9
- Удалить или скорректировать тесты, которые относятся только к Solaris или SPARC или выполняются только на них, например:
- Тесты
jtreg, в которых используется@requires os.family == "solaris"@requires os.arch == "sparc"@requires os.arch == "sparcv9"@requires (vm.simpleArch == "sparcv9")- Методы тестовой библиотеки
Platform.isSolaris()илиPlatform.isSparc(), а также сами эти методы
- Тесты
- Очистить списки проблемных тестов от всех упоминаний solaris или SPARC
- Аккуратно скорректировать комментарии в исходном коде, в которых упоминаются Solaris или SPARC
- Во многих случаях комментарии можно просто удалить, но некоторые упоминания Solaris и SPARC могут оставаться актуальными даже после удаления портов
- Удалить скрипты создания devkit для Solaris (в
make/devkit) - Удалить всю логику, специфичную для Solaris или SPARC, в конфигурационном файле JIB
Тестирование
Стандартное тестирование на других платформах обеспечит корректность изменений в общих и разделяемых файлах.
Риски и допущения
Удаление поддержки Solaris или SPARC может затронуть другие порты в дереве исходного кода в том крайне маловероятном случае, если они зависят от исходного кода Solaris или SPARC.