-
Notifications
You must be signed in to change notification settings - Fork 106
Description
Hello,
Thank you very much for your project.
I am currently trying to compile the project on an ARM64 Linux system. The compilation is successful, but I encounter a runtime error.
./Gothic2Notr -g ../Gothic_II/
OpenGothic v1.0 dev
WARNING: radv is not a conformant vulkan implementation, testing use only.
no "SystemPack.ini" file in path - using default settings
no "Gothic.ini" file in path - using default settings
Switching music provider to 'OpenGothic'
LLVM ERROR: out of memory
crash.log:
---crashlog(SIGABRT)---
GPU: AMD RADV OLAND (LLVM 7.0.1)
#1: gsignal - /lib/aarch64-linux-gnu/libc.so.6(gsignal+0xac) [0xffff8d5fea44]
#2: abort - /lib/aarch64-linux-gnu/libc.so.6(abort+0x110) [0xffff8d5ec9a8]
#3: llvm::report_bad_alloc_error(char const*, bool) - /lib/aarch64-linux-gnu/libLLVM-7.so.1(_ZN4llvm22report_bad_alloc_errorEPKcb+0x94) [0xffff86322be8]
Here is the log from when I debugged with GDB.
(gdb) run -g ../Gothic_II/
Starting program: /media/inspur/_dde_data/game/tmp/gothic2/opengothic/Gothic2Notr -g ../Gothic_II/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
OpenGothic v1.0 dev
[Detaching after fork from child process 26583]
[New Thread 0xffffef865180 (LWP 26585)]
WARNING: radv is not a conformant vulkan implementation, testing use only.
[New Thread 0xffffeea2a180 (LWP 26586)]
[New Thread 0xffffee229180 (LWP 26587)]
[New Thread 0xffffeda28180 (LWP 26588)]
[New Thread 0xffffbfffe180 (LWP 26589)]
no "SystemPack.ini" file in path - using default settings
no "Gothic.ini" file in path - using default settings
[New Thread 0xffffa1bc5180 (LWP 26591)]
Switching music provider to 'OpenGothic'
LLVM ERROR: out of memory
Thread 4 "threaded-ml" received signal SIGABRT, Aborted.
[Switching to Thread 0xffffee229180 (LWP 26587)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: no such file or dir
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x0000fffff777b9a8 in __GI_abort () at abort.c:79
#2 0x0000fffff04b1be8 in llvm::report_bad_alloc_error(char const*, bool) ()
from /lib/aarch64-linux-gnu/libLLVM-7.so.1
#3 0x0000fffff04b1c64 in ?? () from /lib/aarch64-linux-gnu/libLLVM-7.so.1
#4 0x0000000000537068 in std::__new_allocator<unsigned char>::allocate (this=<optimized out>,
__n=9223372036854775807) at /opt/rh/gcc-toolset-14/root/usr/include/c++/14/bits/new_allocator.h:126
#5 std::allocator<unsigned char>::allocate (this=<optimized out>, __n=9223372036854775807)
at /opt/rh/gcc-toolset-14/root/usr/include/c++/14/bits/allocator.h:196
#6 std::allocator_traits<std::allocator<unsigned char> >::allocate (__a=..., __n=9223372036854775807)
at /opt/rh/gcc-toolset-14/root/usr/include/c++/14/bits/alloc_traits.h:515
#7 std::_Vector_base<unsigned char, std::allocator<unsigned char> >::_M_allocate (this=0xffffee227ac0,
__n=9223372036854775807) at /opt/rh/gcc-toolset-14/root/usr/include/c++/14/bits/stl_vector.h:380
#8 std::_Vector_base<unsigned char, std::allocator<unsigned char> >::_M_create_storage (
this=0xffffee227ac0, __n=9223372036854775807)
at /opt/rh/gcc-toolset-14/root/usr/include/c++/14/bits/stl_vector.h:398
#9 std::_Vector_base<unsigned char, std::allocator<unsigned char> >::_Vector_base (this=0xffffee227ac0,
__n=9223372036854775807, __a=...) at /opt/rh/gcc-toolset-14/root/usr/include/c++/14/bits/stl_vector.h:334
#10 std::vector<unsigned char, std::allocator<unsigned char> >::vector (this=0xffffee227ac0,
__n=9223372036854775807, __a=...) at /opt/rh/gcc-toolset-14/root/usr/include/c++/14/bits/stl_vector.h:557
#11 Dx8::DirectMusic::load (this=0x1bfe5d0, fsgt=<optimized out>)
at /root/OpenGothic/game/dmusic/directmusic.cpp:21
--Type <RET> for more, q to quit, c to continue without paging--q
Quit
ChatGPT analysis told me that the crash occurs in the DirectMusic module (dmusic/directmusic.cpp:21), where it attempts to allocate a std::vector<uint8_t>(9223372036854775807)—which is 8 EB (8 × 10¹⁸ bytes)—of memory. Obviously, such a request cannot succeed, so LLVM reports an out-of-memory error and the process aborts directly.
I am not sure if this is the correct analysis, but I would appreciate your help.
Additionally, I would like to ask if the project currently has an interface to integrate languages that were not supported by the original games, such as CJK fonts like Chinese, Japanese, and Korean.