|
19 декабря 2003: Грег Льюис (Greg
Lewis) выпустил обновлённый набор патчей (patchlevel 9) для программного пакета JDK 1.3.1
и соответствующим образом обновлённого порта ports/java/jdk13. Обновлённые патчи можно
получить, как обычно, по адресу http://www.eyesbeyond.com/freebsddom/java/jdk13.html 12 февраля 2003: Грег Льюис (Greg
Lewis) выпустил обновленный набор патчей (patchlevel 8) для программного обеспечения
JDK™ 1.3.1 и соответственно обновлённый порт ports/java/jdk13. Обновлённые патчи
можно найти, как обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html 26 июля 2002: Грег Льюис (Greg Lewis)
выпустил обновленный набор патчей (patchlevel 7) для программного обеспечения JDK 1.3.1 и
соответственно обновленный порт ports/java/jdk13. Обновленные патчи можно найти, как
обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html 13 февраля 2002: Грег Льюис (Greg
Lewis) выпустил обновленный набор патчей (patchlevel 6) для программного обеспечения JDK
1.3.1 и соответственно обновленный порт ports/java/jdk13. Обновленные патчи можно найти,
как обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html 16 октября 2001: Грег Льюис (Greg
Lewis) выпустил обновленный набор патчей (patchlevel 5) для программного обеспечения JDK
1.3.1 и соответственно обновленный порт ports/java/jdk13. Обновленные патчи можно найти,
как обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html 10 сентября 2001: Грег Льюис (Greg
Lewis) выпустил обновленный набор патчей (patchlevel 4) для программного обеспечения JDK
1.3.1 и соответственно обновленный порт ports/java/jdk13. Обновленные патчи можно найти,
как обычно, на http://www.eyesbeyond.com/freebsddom/java/jdk13.html 27 августа 2001: Грег Льюис (Greg Lewis) выпустил долгожданный порт программного обеспечения JDK 1.3.1. Теперь его можно собрать из каталога портов ports/java/jdk13. Следует учесть, что все замечания ниже действуют, и этот релиз все еще предназначен только для разработчиков, не рекомендуется использовать его в реальных задачах. 16 июля 2001: Грег Льюис (Greg Lewis) выпустил набор патчей для разработчиков, интересующихся сборкой нативного FreeBSD JDK 1.3.1. Необходимо учесть, что это релиз только для разработчиков и работающий JDK не собирается. Патчи выпущены, в основном, для предоставления интересующимся возможности помочь усилиям по портированию, без того, чтобы начинать с самого начала. Патчи и некоторые общие инструкции по сборке можно загрузить с http://www.eyesbeyond.com/freebsddom/java/jdk13.html 15 сентября 2000: Эндрю Галлатин
(Andrew Gallatin) и Шин О'Коннелл (Sean
O'Connell) работают над получением рабочего пакета JDK 1.3 фирмы IBM. Чтобы он заработал
в вашей системе, вам нужно применить патчи к некоторым исходным текстам FreeBSD. Они
предоставили патчи в зависимости от вашей версии: Процитируем сообщение от Дрю:
Я наконец-то добился работы jdk 1.3 фирмы IBM. Хотя сильно я ещё её не
тестировал, похоже, что AWT работает.
Вот обновлённый набор патчей для версии -current до SMPng. Набор патчей
делает следующее:
- меняет значение MINSIGSTKSZ с 8192 на 2048
- реализует linux_rt_sendsig() & linux_rt_sigreturn()
- реализует пользовательский код sigtramp для linux_rt_sigreturn()
- реализует linux_to_bsd_sigaltstack & bsd_to_linux_sigaltstack() для
исправления ошибки в linux_sigaltstack & во избежание множества
вставок в linux_rt_sigreturn(). Также исправлено появление сообщения
"Java HotSpot(TM) Client VM warning: cannot uninstall alt signal stack",
которое было замечено с JDK 1.3 фирмы Sun.
- изменен флаг MAP_STACK на MAP_ANON для отображаемых областей памяти
LINUX_MAP_GROWSDOWN. Это был последний шаг для того, чтобы это
работало. Найдутся ли гуру VM, чтобы поговорить об этом? Похоже, что
что-то не так с растущими стеками в нитях linux[*]
Патчи находятся здесь: http://www.cs.duke.edu/~gallatin/linux_sa_siginfo/diff
[*]"Проблема" в эвристических методах, применяемых в функции
vm_map_growstack() для определения того, является ли стек частью стека
основного процесса. Сейчас мы используем:
is_procstack = addr >= (vm_offset_t)vm->vm_maxsaddr;
где vm->vm_maxsaddr получается из exec_new_vmspace():
vmspace->vm_maxsaddr = (char *)USRSTACK - MAXSSIZ;
Главная нить JDK фирмы IBM уменьшает размер его стека до rlim_cur=2040*1024.
Затем она создает стеки для своих нитей в адресах, которые превышают
vm_maxsaddr, но меньше, чем текущая нижняя граница стека основного процесса,
как определено в p->p_rlimit[RLIMIT_STACK].rlim_cur. Как только нить пытается
обратиться к чему-либо, для чего требуется увеличения области, она погибает.
А теперь письмо от Шина:
Я на скорую руку засинхронизировался с изменениями, которые выполнил Эндрю
Галлатин для того, чтобы заработал Java SDK от IBM. Я смог запустить
appletviewer с одним из демонстрационных приложений и оно работало. Больше
сказать ничего не могу.
Все патчи сделаны относительно /usr/src (или /, потому что все они выполнены
в каталоге sys )
Большинство исправлений сделано в файлах из /sys/i386/linux. Вы должны
смочь применить патч; перейдите в каталог /sys/modules/linux; наберите
make; kldunload linux; наберите make install; потом kldload linux
Есть ещё одно изменение, которое задаёт значение MINSIGSTKSZ равным 2048
в sys/sys/signal.h .. для актуализации этого изменения требуется перекомпиляция
ядра.
18 июля 2000: Эрнст де Хаан (Ernst de Haan) выполнил некоторую работу, что позволило запускать Linux JDK 1.3.0b9 фирмы Sun в 4.0-STABLE. Файл .java_wrapper находится по адресу здесь. (Не забудьте переименовать его в .java_wrapper) Вот что пишет Эрнст:
Ещё один совет: Измените файл jre/lib/jvm.cfg и переместите последнюю строку
наверх. Тогда вы получите:
-classic
-hotspot
-server
Кстати, я получил следующее предупреждение при запуске Swing-приложения:
Warning: Cannot convert string "MetaCtrl<Key>Insert" to type VirtualBinding
Ernst
Ernst de Haan пишет:
> Hi folkz,
>
> Мне удалось запустить Sun JDK 1.3.0 for Linux, beta 9 на моей системе FreeBSD
> 4.0-STABLE. Работает весьма хорошо.
>
> java -version выдаёт следующее:
>
> bash-2.04$ java -version
> expr: syntax error
> java version "1.3.0beta_refresh"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0beta_refresh-b09)
> Classic VM (build 1.3.0beta_refresh-b09, green threads, nojit)
>
> Первая строка о синтаксической ошибке является маленькой проблемой с файлом
> .java_wrapper, но видимо, она несерьёзная. Я выполнил некоторые модификации
> в скрипте .java_wrapper, чтобы всё работало на моей системе. Прилагаю
> версию, которую я использую.
>
> Подробно я ещё не тестировал, однако попробовал запустить одно
> Swing-приложение. Я заметил некоторые отличия в шрифтах, хотя похоже, что
> всё работает достаточно хорошо и быстро :)
>
> Ого, скоро FreeBSD станет платформой с наибольшим количеством работающих
> на ней пакетов JDK, как только на ней заработает WINE, мы сможем запустить
> пакеты JDK ещё и для Windows, и ещё написать эмулятор AS/400, и ещё... и
> ещё... ;-)
>
> Ernst
>
> P.S. Спасибо Виктору Саламану (Victor Salaman), который указал мне
> правильное направление. Он достаточно давно работает с Sun JDK 1.3
> for Linux.
29 января 2000: Работа над портированием JDK 1.3 ещё не началась. И до тех пор, пока не будет выпущен релиз JDK 1.2, работа над JDK 1.3 проводиться не будет. |