Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libEngine.so: undefined symbol: inflate #30

Open
SopaDeMacaco-UmaDelicia opened this issue Oct 19, 2023 · 10 comments
Open

libEngine.so: undefined symbol: inflate #30

SopaDeMacaco-UmaDelicia opened this issue Oct 19, 2023 · 10 comments

Comments

@SopaDeMacaco-UmaDelicia

После обновления до версии 1.10.6 из AUR сэм отказывается запускаться. Терминал выдаёт
serioussam: symbol lookup error: /usr/lib/libEngine.so: undefined symbol: inflate
До этого стояла июньская версия и всё работало отлично.

@tx00100xt
Copy link
Owner

inflate

Функция относиться к библиотеке zlib, https://github.com/madler/zlib/blob/ac8f12c97d1afd9bafa9c710f827d40a407d3266/inflate.c#L590
которая используется в libEngine.so для распаковки gro файлов схатых в формате zip.

int ierr = inflate(&zh.zh_zstream, Z_SYNC_FLUSH);

Для начала стоит переустановить zlib. Проверить наличие всех файлов.

└── usr
├── include
│   ├── zconf.h
│   └── zlib.h
├── lib
│   ├── libz.a
│   ├── libz.so -> libz.so.1.3
│   ├── libz.so.1 -> libz.so.1.3
│   ├── libz.so.1.3
│   └── pkgconfig
│   └── zlib.pc
└── share
├── licenses
│   └── zlib
│   └── LICENSE
└── man
└── man3
└── zlib.3.gz

10 directories, 9 files

После этого попробовать собрать Serious Sam.

@SopaDeMacaco-UmaDelicia
Copy link
Author

zlib на месте, переустановил, пересобрал сэма, ничего не изменилось, вот ещё лог сборки
https://pastebin.com/LWEqGKYV

@tx00100xt
Copy link
Owner

tx00100xt commented Oct 19, 2023

Лог сборки нормальный.

Странно что всего на один символ ругается. Обычно когда проблемы с zlib ругается сразу на целую кучу функций. И сборка при этом не идет.

Буквально два дня назад собирал под Arch Linux на виртуалке версию 1.10.6 и всё работало. Игра запускалась. Работали обе версии OpenGL и Vulкат. Но есть одно но, я не обновлял свой Arch на виртуалке несколько месяцев. Версия zlib 1.3 вышла в августе, возможно они что-то намудрили. Обновлю систему и посмотрю что к чему.

А пока есть временное решение. Движок может использовать внешнюю библиотеку zlib, а так же внутреннюю.
Код zlib включен в исходники движка, и достаточно поменять лишь один параметр для сборки со встроенной zlib.

https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTFE/Sources/CMakeLists.txt#L13
https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTSE/Sources/CMakeLists.txt#L13

Нужно параметр On перевести на OFF

Для этого в PKGBUILD нудно сразу после prepare() вставить строчки:

prepare(){
  # Build with internal zlib
  cd "$srcdir/$_srcname"
  find . -name "CMakeLists.txt" -exec sed -i 's/zlib development files" On/zlib development files" OFF/g' {} +

  # Making building TFE scripts.
  cd "$srcdir/$_srcname/SamTFE/Sources/"

Сейчас собрал у себя на генту со встроенным zlib. Тоже работает нормально.

Запустил сборку с внешним zlib на виртуалке с Arch. Версия zlib тоже 1.3

-- Found SDL2: /usr/lib/libSDL2main.a;/usr/lib/libSDL2.so
-- Found ZLIB: /usr/lib/libz.so (found version "1.3")
->- Found Vulkan: /lib/libvulkan.so

Значит последнее обновление делал в конце августа начале сентября.
Всё работает и с внешним zlib.
Снимок экрана в 2023-10-19 19-42-27
В любом случае только после обновления системы всё станет ясно

@tx00100xt
Copy link
Owner

И еще. вот предыдущая версия с aur https://aur.archlinux.org/cgit/aur.git/snapshot/aur-aa676baa24a5404fbe914ec85a84f258b21332e2.tar.gz
Будет ли она нормально работать?

@SopaDeMacaco-UmaDelicia
Copy link
Author

И еще. вот предыдущая версия с aur https://aur.archlinux.org/cgit/aur.git/snapshot/aur-aa676baa24a5404fbe914ec85a84f258b21332e2.tar.gz Будет ли она нормально работать?

Попробовал, тоже самое. Как я говорил, прошлая версия была версия скомпилирована в июне, а вот zlib обновился в августе, так что может zlib чудит.

@tx00100xt
Copy link
Owner

Попробовал, тоже самое. Как я говорил, прошлая версия была версия скомпилирована в июне, а вот zlib обновился в августе, так что может zlib чудит.

Предполагаю что проблема где-то в самой системе.

Я только-что сделал полное обновление системы. Собрал с внешним zlib. и всё работает нормально.
Снимок экрана в 2023-10-19 20-19-33

Могу пока что предложить как временное решение - PKGBUILD с использование встроенного zlib:
serioussam-vk-1.10.6-1-x86_64-with-internal-zlib.tar.gz
У себя собрал - работает без внешнего zlib.

@tx00100xt
Copy link
Owner

В Арче уже не первый раз zlib у людей ломается.
https://aur.archlinux.org/packages/serioussam#comment-903474
Может починится следующими обновлениями.

@SopaDeMacaco-UmaDelicia
Copy link
Author

У себя собрал - работает без внешнего zlib.

Т.е. работает чисто с системной zlib?

@SopaDeMacaco-UmaDelicia
Copy link
Author

Собрал со встроенной в движок zlib, заработало

@tx00100xt
Copy link
Owner

Т.е. работает чисто с системной zlib?

Наоборот - вообще не использует системный zlib.
Использует свой внутренний.

Собрал со встроенной в движок zlib, заработало

Отлично.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants