ptitSeb / box64

Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64 Linux devices
https://box86.org
MIT License
3.93k stars 290 forks source link

Error loading needed lib libgcc_s.so.1 #1189

Open ToxicJxnnik opened 10 months ago

ToxicJxnnik commented 10 months ago

I am currently trying to run an ARK Survival Evolved server on my RaspberryPi 5 8GB

I installed the server on my Windows-PC with SteamCMD and transferred it using rsync on WSL. I created a start script like mentioned in the tutorial and tried it.

Script:

#! /bin/bash
./ShooterGameServer TheIsland?listen?SessionName=server?ServerPassword=pswd?ServerAdminPassword=pswd -server -log

Log:

Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2 PageSize:16384 Running on Cortex-A76 with 4 Cores
Params database has 46 entries
Box64 with Dynarec v0.2.7 9b23c327 built on Jan  5 2024 02:35:29
BOX64: Detected 48bits at least of address space
Counted 50 Env var
BOX64 LIB PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/:/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/
BOX64 BIN PATH: ./:bin/:/usr/local/sbin/:/usr/local/bin/:/usr/sbin/:/usr/bin/:/sbin/:/bin/:/usr/local/games/:/usr/games/
Looking for ./ShooterGameServer
argv[1]="TheIsland?listen?SessionName=server?ServerPassword=pswd?ServerAdminPassword=pswd"
argv[2]="-server"
argv[3]="-log"
Rename process to "ShooterGameServer"
Using native(wrapped) libpthread.so.0
Using native(wrapped) libdl.so.2
Using native(wrapped) librt.so.1
Using emulated /home/pi/Documents/Ark/ShooterGame/Binaries/Linux/../../../Engine/Binaries/Linux/libsteam_api.so
Using emulated libEOSSDK-Linux-Shipping.so
Using native(wrapped) libm.so.6
Using emulated libstdc++.so.6
Discarding /home/pi/Documents/Ark/ShooterGame/Binaries/Linux/libgcc_s.so.1 for missing version GCC_3.0
Discarding /home/pi/Documents/Ark/ShooterGame/Binaries/Linux/libgcc_s.so.1 for missing version GCC_3.0
Discarding /home/pi/Documents/Ark/Engine/Binaries/Linux/libgcc_s.so.1 for missing version GCC_3.0
Discarding /home/pi/Documents/Ark/ShooterGame/Binaries/libgcc_s.so.1 for missing version GCC_3.0
Discarding /home/pi/Documents/Ark/ShooterGame/Binaries/Linux/libgcc_s.so.1 for missing version GCC_3.0
Discarding /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 for missing version GCC_3.0
Discarding /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 for missing version GCC_3.0
Error loading needed lib libgcc_s.so.1
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libutil.so.1
Using native(wrapped) libbsd.so.0
Error loading one of needed lib
Error: Loading needed libs in elf /home/pi/Documents/Ark/ShooterGame/Binaries/Linux/ShooterGameServer
ptitSeb commented 10 months ago

Mmmm, something is wrong there. The libs should not be discarded because of GCC_3.0, as this version tag is defently present in the version shipped with box64 (and probably with the one shipped with Ark too). Did you built that box64 version from sources?

ToxicJxnnik commented 10 months ago

I installed it using this tutorial: https://pimylifeup.com/raspberry-pi-x64/

I cloned the repo, compiled it and installed it

daalen commented 10 months ago

I was going to report the exact same issue: I see a closed issue on this (libgcc_s.so.1 discarded for missing version GCC_3.0), but I get this error with the latest version of box64 too. However, this is for my own Unity game, so if there's something I can change in my own source to get this to work I'm happy to try.

ptitSeb commented 10 months ago

I'm guessing this is a side-effect of the non-standard pagesize of 16K! Support for this is still highly experimental and I would suggest you switch to a 4K pagesize for much higher compatbility with x86_64.

ToxicJxnnik commented 10 months ago

switching to a kernel with 4k pagesize solved the issue for me

daalen commented 10 months ago

This also solved the issue for me, thanks.

ODog235 commented 10 months ago

I'm having this same issue on a rasberry pi 4 b 8gb. How do you switch page sizes?

daalen commented 10 months ago

Edit /boot/firmware/config.txt, then change (or add) the kernel specification to kernel=kernel8.img.