Автор Тема: Байкал и Alt с ssl не взлетели  (Прочитано 546 раз)

Оффлайн _1v4n_

  • Начинающий
  • *
  • Сообщений: 6
Добрый день.
Возникла проблема при запуске проекта в Alt linux на процессоре Baikal. Проект отлично запускался на ubuntu 18.04 arm64 и Linux for Tegra. Все зависимости установлены, их версии соответствуют тем, которые были использованы при сборке (сборка осуществлялась на ubuntu 20.04 x86_64, qt creator 5.12, conan, aarch-gcc-9). Скриншот с ошибкой прилагаю. В чем может быть проблема?

Оффлайн andrew_b

  • Завсегдатай
  • *
  • Сообщений: 535
Re: Байкал и Alt с ssl не взлетели
« Ответ #1 : 14.06.2022 20:29:55 »
Во-первых, не надо постить текст картинкой. Никаких скриншотов. Текст должен оставаться текстом.

Вы собрали софт на Бубунте и пытаетесь запустить его на Альте? Почему вы решили, что зависимости там полностью соответствуют зависимостям здесь? Если в библиотеке нет какой-то функции, то это как раз говорит о том, что версии бибилиотеки libssl разные.

Оффлайн _1v4n_

  • Начинающий
  • *
  • Сообщений: 6
Re: Байкал и Alt с ssl не взлетели
« Ответ #2 : 14.06.2022 23:48:58 »
Решил, что зависимости те же, потому что остальная часть проекта запустилась без проблем. Также сравнивал файлы на убунте и альте, и версия openssl на убунте 20 и 18 были младше, чем на Альт. Развне не логично, что в старшей версии точно будут функции, которые работали на старых версиях либы?
Вспомнил, что при запуске эльфа с strace, видел много ошибок вызова libdl.so.2, который является обязательным для системы. В проекте использую несколько библиотек от Qt, может это ошибка из-за их нехватки? Хотя это странно, ведь ldd не показывает, что какие-то библиотеки не найдены и функция в библиотеке SSL имеет точно такое же название, что и в ошибке.
Еще вознкикали проблемы со сторонними бибилиотеками, но все они решались простыми добавлениями ссылок, кроме одной, которая никак не хотела находиться, не помогали ни ссылки, ни копирование бибилиотеки в директорию с испольняемым файлом. Сами зависимости для сторонней бибилиотеки были удовлетворены, помогло только установка переменной LD_LIBRARY_PATH в текущую диреткорию, но после этого вылезла ошибка из темы вопроса.
« Последнее редактирование: 15.06.2022 01:30:42 от _1v4n_ »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Байкал и Alt с ssl не взлетели
« Ответ #3 : 15.06.2022 09:40:45 »
Решил, что зависимости те же
Зря. Надо собирать проект в той системе, для которой он предназначен, либо использовать статическую линковку с библиотеками. Лучше первое.

Оффлайн _1v4n_

  • Начинающий
  • *
  • Сообщений: 6
Re: Байкал и Alt с ssl не взлетели
« Ответ #4 : 15.06.2022 18:28:39 »
В данном случае не понимаю, зачем нужно собирать проект на альте, если эта библиотека используется во всех дистрибутивах повсеместно.
Собрал нужный пакет openssl/1.1.1k на альте, перебросил на убунту и собрал проект. Ошибка никуда не исчезла. Необходимая мне версия - openssl/1.1.1k, версия на альте - openssl/1.1.1n и версия на убунте 20й - openssl/1.1.1f. Не отличаются в функции, к которой обращается мой бинарник. Причем сама эта функция есть в библиотках ситсемы
user@baikal SSL $ strings ssl_lib.o | grep ssl_wri
ssl_write
ssl_write_internal
ssl_write_bytes
ssl_write_internal
« Последнее редактирование: 15.06.2022 18:32:05 от _1v4n_ »

Оффлайн andrew_b

  • Завсегдатай
  • *
  • Сообщений: 535
Re: Байкал и Alt с ssl не взлетели
« Ответ #5 : 15.06.2022 20:24:42 »
Собрал нужный пакет openssl/1.1.1k на альте, перебросил на убунту
Как вы это сделали? Почему бы не собрать ваш проект непосредственно на Альте?

Ошибка никуда не исчезла.
Следите за руками:
$ nm -D /lib64/libssl.so.1.1  | grep _internal
$
То есть таких функций действительно нет. Поэтому есть большие сомнения, что вы слинковали программу именно с этой библиотекой.

Ну и суффикс _internal может говоритm о том, что это непубличное API. Шут его знает, как там в Бубунте собирают libssl.
« Последнее редактирование: 15.06.2022 20:26:48 от andrew_b »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Байкал и Alt с ssl не взлетели
« Ответ #6 : 15.06.2022 20:39:57 »
В данном случае не понимаю, зачем нужно собирать проект на альте,
Лучше в этом разобраться.
если эта библиотека используется во всех дистрибутивах повсеместно.
Да неужели? Прямо вот символ в символ? Ну-ну... Иногда, конечно, может и повезти, но это будет не правило, а исключение.
« Последнее редактирование: 15.06.2022 20:41:30 от asy »

Оффлайн _1v4n_

  • Начинающий
  • *
  • Сообщений: 6
Re: Байкал и Alt с ssl не взлетели
« Ответ #7 : 15.06.2022 20:45:36 »
Собрал с помощью менеджера пакетов conan.
lib_ssl.o достал из a архива.
Чем вам так убунту не нравится? Да, приходится ее использовать для разработки и тестирования, т. к. она на каждом компьютере пойдет. И как можно собрать один и тот же исходник с одними и теми же функциями, и получить разный результат? Выше же ссылки дал на репозиторий всех версий openssl, с которыми взаимодействую, везде эта функция пристуствует без изменений.

Оффлайн _1v4n_

  • Начинающий
  • *
  • Сообщений: 6
Re: Байкал и Alt с ssl не взлетели
« Ответ #8 : 15.06.2022 20:48:52 »
В данном случае не понимаю, зачем нужно собирать проект на альте,
Лучше в этом разобраться.
если эта библиотека используется во всех дистрибутивах повсеместно.
Да неужели? Прямо вот символ в символ? Ну-ну... Иногда, конечно, может и повезти, но это будет не правило, а исключение.
Выше же прислал ссылки на репозиторий openssl, и там в каждой версии, с которой имею дело, есть проблемная для меня функция.

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Байкал и Alt с ssl не взлетели
« Ответ #9 : 16.06.2022 04:40:12 »
Выше же прислал ссылки на репозиторий openssl
А в систему с ALT устанавливаются собранные пакеты из репозитория ALT, а не оттуда. Там конечно же нет патчей, в спеке не написано как и из чего собираются, вот всё прям как в апстриме. Ага... Да ещё под Байкал.

И как можно собрать один и тот же исходник
А что в убунте, которая базируется на дебиане все до единого бинарные пакеты точь в точь как дебиане? С какой радости в альте, который базируется на альте они должны быть как в убунте?
« Последнее редактирование: 16.06.2022 04:59:14 от stranger573 »

Оффлайн andrew_b

  • Завсегдатай
  • *
  • Сообщений: 535
Re: Байкал и Alt с ssl не взлетели
« Ответ #10 : 16.06.2022 12:59:38 »
lib_ssl.o достал из a архива.
Это бесмыссленно.

lib_ssl.o -- это один из объектных файлов, из которых собирается библиотека libssl.so.1. Как только собрали библиотеку, о её объектниках забыли. Программа линкуется с библиотекой libssl.so.1, и вы не можете слинковать программу с какими-то отдельными объектниками библиотеки.

Да, функции ssl_write_internal и ssl_read_internal есть в lib_ssl.o, но это внутренние функции libssl.so. Они не экспортируются. Тут даже статическая линковка не поможет.

Остаётся загадкой, зачем и как авторы программы используют внутренние функции библиотеки. От слишком большого ума, что ли?

Оффлайн _1v4n_

  • Начинающий
  • *
  • Сообщений: 6
Re: Байкал и Alt с ssl не взлетели
« Ответ #11 : 16.06.2022 13:50:49 »
В любом случае, на Альте стоит версия openssl явно свежее, чем на убунте. Однако бинарник не запускается. Проблем может в линковке?

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Байкал и Alt с ssl не взлетели
« Ответ #12 : 16.06.2022 16:09:55 »
В любом случае, на Альте стоит версия openssl явно свежее, чем на убунте. Однако бинарник не запускается. Проблем может в линковке?
Искать потерянные в лесу ключи на городской площади под фонарём оно конечно и светлее и удобнее.