Обновление java в uClinux

Я хочу обновить Java для нашего продукта uClinux до ojava 8. Проблема в том, что кажется, что Java от версии 7 и выше зависит от glibc-2.4, а установленная версия glibc - 2.3.6. При запуске java -version в терминале я получаю это сообщение:

Error: dl failure on line 893
Error: failed /usr/java/jre/lib/i386/client/libjvm.so, because /lib/libc.so.6: version `GLIBC_2.4' not found (required by /usr/java/jre/lib/i386/client/libjvm.so)

Мы используем набор инструментов crosstool для создания образа uClinux, который не обновлялся с 2006 года, и последнюю версию glibc, поддерживаемую это glibc 2.3.6. Интересно, смогу ли я обновить библиотеку glibc uClinux до версии 2.4. Возможно ли, что какое-то приложение не работает с более новой версией glibc? Другой вопрос, нужна ли нам та же версия glibc, которую использует crosstool toolcain (2.3.6).

Последний вопрос: зависит ли java 8 от версии ядра Linux? В настоящее время мы используем версию ядра linux 2.6.24. Я видел здесь для этой встроенной Java требуется ядро ​​​​linux 2.6.28 или выше. Есть ли у нас такая же зависимость в java se?

Спасибо за помощь


person Govan    schedule 31.05.2018    source источник
comment
Виртуальные машины Java не зависят от версии ядра, они обычно создаются для конкретной комбинации процессор-ОС без зависимости от версии любой из них. У них есть зависимости от небольшого количества библиотек, специфичных для операционной системы, таких как libc.   -  person Sean F    schedule 31.05.2018


Ответы (1)


Согласно README-builds.html, OpenJDK 8 был собран на Fedora 9 с glibc 2.8 (плюс бэкпорты). Поэтому вам следует обновиться как минимум до этой версии glibc. (Хотя в качестве среды сборки используется Fedora 9, это не означает, что целью является поддержка запуска с исходным ядром Fedora 9.)

Что касается ядра, OpenJDK 8 по-прежнему поддерживает Red Hat Enterprise Linux 5, в котором используется Linux 2.6.18, а также множество бэкпортов, некоторые из которых охватывают новые функции, добавленные после Linux 2.6.24. Я не помню, использует ли OpenJDK что-либо из этого (поддержка O_CLOEXEC была бы вероятным кандидатом).

person Florian Weimer    schedule 31.05.2018