[[_improve_openjdk_on_freebsd]]
=== Улучшение OpenJDK в FreeBSD (Improve OpenJDK on FreeBSD)

Ссылки: +
link:https://freebsdfoundation.org/project/improving-openjdk-on-freebsd/[Описание проекта] URL: https://freebsdfoundation.org/project/improving-openjdk-on-freebsd/[] +
link:https://github.com/freebsd/openjdk[Репозиторий проекта] URL: https://github.com/freebsd/openjdk[] +
link:https://github.com/openjdk/bsd-port[Вышестоящий репозиторий BSD-порта] URL: https://github.com/openjdk/bsd-port[]

Контакт: +
Harald Eilertsen <haraldei@FreeBSD.org> +
Список рассылки FreeBSD Java <freebsd-java@lists.freebsd.org>

Цель этого проекта — улучшить поддержку OpenJDK для FreeBSD/amd64 и FreeBSD/arm64.

Java является важной средой выполнения для многих высокопроизводительных критически важных корпоративных систем.
Обеспечение правильной и эффективной работы приложений на основе Java во FreeBSD важно для того, чтобы FreeBSD оставалась жизнеспособной и привлекательной платформой для предприятий, а также для бизнеса и организаций любого размера.

В этом квартале были достигнуты следующие цели/вехи:

* Обновлён порт OpenJDK 25 до link:https://reviews.freebsd.org/D55529[версии 25.0.2].
* Исправлена проблема со сборкой headless-вариантов OpenJDK 25 link:https://reviews.freebsd.org/D55589[при отсутствии библиотек xorg].
* Переработан способ link:https://kodeknekkeriet.net/en/blog/bootstrapping-openjdk-freebsd-ports/[начальной загрузки (bootstrapping)] портов OpenJDK на FreeBSD:
  - link:https://reviews.freebsd.org/D54683[D54683]: OpenJDK 8-20
  - link:https://reviews.freebsd.org/D54731[D54731]: OpenJDK 21-25
* Исправлен и улучшен Serviceability Agent для FreeBSD в основном BSD-порте:
  - link:https://github.com/battleblow/jdk/pull/38[Откат поломки], вызванной портом macOS.
  - Исправлено link:https://github.com/battleblow/jdk/pull/38/changes/c1c498392ee10b0c35e8078f11cc975b9f1df5fb[получение стеков вызовов (stack traces) из потоков] в отслеживаемом процессе.
  - Исправлена link:https://github.com/battleblow/jdk/pull/42[ложная проблема], когда поиск символов нативных символов в разделяемых объектах иногда не удавался.
  - link:https://github.com/battleblow/jdk/pull/38/changes/39130dd99897437101169bddc032431ecf259461[Упрощена функция] для чтения произвольной памяти из отслеживаемого процесса.
* Включена link:https://github.com/battleblow/jdk/pull/41[сборка/установка Hotspot Disassembler (HSDIS)] для FreeBSD.
  Это необходимо для некоторых тестов на Aarch64, чтобы проверить, что Hotspot генерирует правильные последовательности инструкций в различных окружениях. Пока поддерживается только llvm backend, хотя нет причин полагать, что другие не будут работать.
* link:https://github.com/battleblow/jdk/pull/40[Синхронизирована реализация ThreadWXEnable] с macOS.
  Это позволяет Hotspot переключать доступ на запись/исполнение для сегментов памяти, чтобы он мог генерировать код для последующего выполнения на Aarch64.
  Это всего лишь небольшая настройка для согласования с API, используемым кодом macOS, хотя наша реализация отличается.
* Перенесены изменения, связанные с BSD, из основной линии в порты link:https://github.com/battleblow/jdk25u/pull/11[OpenJDK 25] и link:https://github.com/battleblow/jdk26u/pull/3[OpenJDK 26].
* Добавлен новый link:https://reviews.freebsd.org/D55938[порт для OpenJDK 26].
  Спасибо Грегу Льюису (Greg Lewis) и Курту Миллеру (Kurt Miller) за помощь.
* Влит link:https://github.com/openjdk/bsd-port/pull/4[первый PR] в вышестоящий репозиторий BSD-порта!

Другие заметки:

* Начата работа по обновлению OpenJDK 25 до версии 25.0.3, запланированной на середину апреля.
* Я буду рассказывать о проекте и своём опыте работы над ним на конференции link:https://foss-north.se/2026/speakers-and-talks.html#heilertsen[foss-north] в Гётеборге, Швеция, 28 апреля.

Спонсор: Фонд FreeBSD

//
// The FreeBSD Russian Documentation Project
//
// Original EN revision (18.04.2026): aeb19696230c6dcdbe4a98ac8b57a9e519baac88
//
