box64 icon indicating copy to clipboard operation
box64 copied to clipboard

Veloren - missing global symbols

Open CactiChameleon9 opened this issue 3 years ago • 7 comments

daniel@danielPi400 ~> ./Games/veloren/veloren-voxygen 
Dynarec for ARM64, with extension: ASIMD CRC32 PageSize:4096
Box64 with Dynarec v0.1.4 756fe29 built on Sep  5 2021 19:32:37
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 37 Env var
Looking for ./Games/veloren/veloren-voxygen
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libxkbcommon-x11.so.0
Using native(wrapped) libxkbcommon.so.0
Using native(wrapped) libudev.so.1
Using native(wrapped) libasound.so.2
Using native(wrapped) libdl.so.2
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) librt.so.1
Using native(wrapped) libpthread.so.0
Using native(wrapped) libm.so.6
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Error: Global Symbol snd_pcm_sw_params_set_tstamp_type not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a2fb0 ((nil)) in ./Games/veloren/veloren-voxygen
Error: Global Symbol xkb_keymap_new_from_buffer not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a3b68 ((nil)) in ./Games/veloren/veloren-voxygen
Error: Global Symbol posix_spawn_file_actions_addchdir_np not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a3c00 ((nil)) in ./Games/veloren/veloren-voxygen
Error: Global Symbol xcb_discard_reply not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a3f60 ((nil)) in ./Games/veloren/veloren-voxygen
Error: Global Symbol statx not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a3f80 ((nil)) in ./Games/veloren/veloren-voxygen
1277|0xffff8ecdffa0: Unimplemented Opcode (FB) 64 8A 04 25 F8 FC FF FF 3C 01 74 2D 84 C0 0F

From the error message, the following Global Symbols are not found;

  • statx
  • xcb_discard_reply
  • posix_spawn_file_actions_addchdir_np
  • xkb_keymap_new_from_buffer
  • snd_pcm_sw_params_set_tstamp_type

Veloren is an open source game but trying to natively compile it on an rpi4 4GB + 5GB swap got killed due to, I assume, a low memory killer so I tried box64

My device is a Raspberry Pi 400 running Manjaro Arm

CactiChameleon9 avatar Feb 23 '22 10:02 CactiChameleon9

I'll add those symbol soon. But the actual error is the unimplemented opcode (I'll add it soon too).

ptitSeb avatar Feb 24 '22 07:02 ptitSeb

Great, thanks! I assumed the opcode was caused by the first errors - my bad 👍

CactiChameleon9 avatar Feb 24 '22 07:02 CactiChameleon9

So, I have added the symbols. The opcode is already added, but it seems you are using an old version of box64. Update to current "main" (so you need to build from sources) and it should work.

ptitSeb avatar Feb 26 '22 17:02 ptitSeb

Seems a little better, however it still doesn't run:

daniel@danielPi400 ~/G/veloren> ./veloren-voxygen
Dynarec for ARM64, with extension: ASIMD CRC32 PageSize:4096
Box64 with Dynarec v0.1.7 a6dd5c9 built on Mar  5 2022 17:16:11
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 38 Env var
Looking for ./veloren-voxygen
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libxkbcommon-x11.so.0
Using native(wrapped) libxkbcommon.so.0
Using native(wrapped) libudev.so.1
Using native(wrapped) libasound.so.2
Using native(wrapped) libdl.so.2
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) librt.so.1
Using native(wrapped) libpthread.so.0
Using native(wrapped) libm.so.6
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Warning, call to __cxa_thread_atexit_impl(0xffff83b53ef0, 0x9779ff10, 0xffff862471b0) ignored
25042|0xffff83e3393b: Unimplemented Opcode (FF) 64 F3 0F 6F 04 25 E0 FF FF FF 66 0F 7F 04 24

This isn't a priority for me, so don't priorities this (unless you want to) Thanks for the speedy responce previously

CactiChameleon9 avatar Mar 05 '22 20:03 CactiChameleon9

daniel@danielPi400 ~> ./Games/veloren/veloren-voxygen 
Dynarec for ARM64, with extension: ASIMD CRC32 PageSize:4096
Box64 with Dynarec v0.1.4 756fe29 built on Sep  5 2021 19:32:37
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 37 Env var
Looking for ./Games/veloren/veloren-voxygen
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libxkbcommon-x11.so.0
Using native(wrapped) libxkbcommon.so.0
Using native(wrapped) libudev.so.1
Using native(wrapped) libasound.so.2
Using native(wrapped) libdl.so.2
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) librt.so.1
Using native(wrapped) libpthread.so.0
Using native(wrapped) libm.so.6
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Error: Global Symbol snd_pcm_sw_params_set_tstamp_type not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a2fb0 ((nil)) in ./Games/veloren/veloren-voxygen
Error: Global Symbol xkb_keymap_new_from_buffer not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a3b68 ((nil)) in ./Games/veloren/veloren-voxygen
Error: Global Symbol posix_spawn_file_actions_addchdir_np not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a3c00 ((nil)) in ./Games/veloren/veloren-voxygen
Error: Global Symbol xcb_discard_reply not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a3f60 ((nil)) in ./Games/veloren/veloren-voxygen
Error: Global Symbol statx not found, cannot apply R_X86_64_GLOB_DAT @0xffff913a3f80 ((nil)) in ./Games/veloren/veloren-voxygen
1277|0xffff8ecdffa0: Unimplemented Opcode (FB) 64 8A 04 25 F8 FC FF FF 3C 01 74 2D 84 C0 0F

From the error message, the following Global Symbols are not found;

* statx

* xcb_discard_reply

* posix_spawn_file_actions_addchdir_np

* xkb_keymap_new_from_buffer

* snd_pcm_sw_params_set_tstamp_type

Veloren is an open source game but trying to natively compile it on an rpi4 4GB + 5GB swap got killed due to, I assume, a low memory killer so I tried box64

My device is a Raspberry Pi 400 running Manjaro Arm

I think it would be faster and better for you to set up a cross compiler on a different device than to use box64 to play veloren.

Kuratius avatar Mar 05 '22 22:03 Kuratius

@Kuratius Probably yes, however I am not too confident with cross compiling (especially with a rust app) and that's not a massively viable solution due to the rapid updates veloren gets. Thanks for the suggestion though

CactiChameleon9 avatar Mar 06 '22 07:03 CactiChameleon9

FYI there's an ARM64 Flatpak available for Veloren on Flathub.

Nightly linux Aarch64 builds are now produced (distribution via airshipper will follow soon)

Firlaev-Hans avatar Mar 06 '22 08:03 Firlaev-Hans

This url will allways get the latest aarch64 download link weekly: https://download.veloren.net/latest/linux/aarch64/weekly Nithly: https://download.veloren.net/latest/linux/aarch64/nightly

So this can be closed

QuintenQVD0 avatar Nov 28 '22 16:11 QuintenQVD0