openjdk.ruOpenJDK на русском

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/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
  • Удалить или скорректировать код на C/C++, защищённый следующими определениями и макросами препроцессора:
    • SPARC, __sparc__, __sparc, __sparcv9
    • SOLARIS, __solaris__
    • SPARC_ONLY, NOT_SPARC
    • SOLARIS_ONLY, NOT_SOLARIS
    • SOLARIS_MUTATOR_LIBTHREAD
    • SPARC_WORKS
  • Удалить или скорректировать код на Java, который проверяет наличие Solaris или SunOS, например:
    • System.getProperty(“os.name”).contains(“Solaris”)
    • System.getProperty(“os.name”).startsWith("SunOS")
  • Удалить возможности, специфичные для Solaris:
  • Удалить или скорректировать логику системы сборки (automake и т. д.), связанную с Solaris, SPARC или Oracle Studio, а именно следующие переменные и значения:
    • OPENJDK_{BUILD,TARGET}_OS = Solaris
    • OPENJDK_{BUILD,TARGET}_CPU_ARCH = sparc
    • TOOLCHAIN_TYPE = solstudio
    • is{Build,Target}Os = solaris
    • is{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.