You are not logged in.

#1 2016-12-14 23:48:24

jonno2002
Member
Registered: 2016-11-21
Posts: 684

trying to run old half-life dedicated server with no luck

so im trying to run an old half-life dedicated server (hlds_l_3111e) on arch and having troubles, i fired up a 32bit debian virtualbox and it runs in there fine, i have multiarch enabled and lib32-glibc lib32-ncurses lib32-libstdc++5 installed but am getting the following error:

[jonno2002@boris hlds_l]$ ./hlds_run -debug
Auto detecting CPU
Using Pentium II Optimised binary.
Enabling debug mode
Auto-restarting the server on crash
Fatal error: glibc detected an invalid stdio handle
./hlds_run: line 261: 10030 Aborted                 (core dumped) $HL_CMD
cat: hlds.10019.pid: No such file or directory
email debug.log to linux@valvesoftware.com
Thu Dec 15 12:43:07 NZDT 2016: Server restart in 10 seconds
Thu Dec 15 12:43:10 NZDT 2016: Server Quit

debug log doesnt help:

----------------------------------------------
CRASH: Thu Dec 15 12:43:07 NZDT 2016
Start Line: ./hlds_i686 -debug
End of crash report
----------------------------------------------

journalctl outputs this:

Dec 15 12:34:14 boris systemd[1]: Started Process Core Dump (PID 9957/UID 0).
Dec 15 12:34:15 boris systemd-coredump[9958]: Process 9956 (hlds_i686) of user 1000 dumped core.
                                              
                                              Stack trace of thread 9956:
                                              #0  0x00000000f7749c99 __kernel_vsyscall (linux-gate.so.1)
                                              #1  0x00000000f751beb0 raise (libc.so.6)
                                              #2  0x00000000f751d3d7 abort (libc.so.6)
                                              #3  0x00000000f755815f __libc_message (libc.so.6)
                                              #4  0x00000000f755819c __libc_fatal (libc.so.6)
                                              #5  0x00000000f7558b43 _IO_vtable_check (libc.so.6)
                                              #6  0x00000000f7532b7b vfprintf (libc.so.6)
                                              #7  0x00000000f753a046 _IO_printf (libc.so.6)
                                              #8  0x000000000804a944 Sys_Printf__FPce (hlds_i686)
                                              #9  0x000000000804c9ea Init__12CTextConsoleP11IBaseSystem (hlds_i686)
                                              #10 0x000000000804ce27 Init__16CTextConsoleUnixP11IBaseSystem (hlds_i686)
                                              #11 0x000000000804b28a main (hlds_i686)
                                              #12 0x000000000804a85a _start (hlds_i686)

im probably missing somthing really simple but dont know what it is, i have done ALOT of googling and cant figure it out so hopefully someone here can help.

Offline

#2 2016-12-15 10:06:30

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,948

Re: trying to run old half-life dedicated server with no luck

a 32bit debian virtualbox and it runs in there fine, i have multiarch enabled and lib32-glibc lib32-ncurses lib32-libstdc++5 installed

You do realise lib32-* packages are 32-bit programs compiled to run on x86_64 ?

Have you tried to run hlds on a i686 (32-bit) archlinux ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#3 2016-12-15 12:30:29

jonno2002
Member
Registered: 2016-11-21
Posts: 684

Re: trying to run old half-life dedicated server with no luck

no i havent tried that, but i thought the purpose of multilib was so you can run 32bit programs on a 64bit os ? otherwise whats the point of it ? sorry if thats a dumb question but im still learning

[edit]  well this is really confusing, ive just been playing around with it and the "hlds_l_3111" version works BUT as soon as i apply the "hlds_l_3111e" update it causes that error  [edit]

Last edited by jonno2002 (2016-12-15 12:45:05)

Offline

#4 2016-12-15 12:54:30

seth
Member
Registered: 2012-09-03
Posts: 51,456

Re: trying to run old half-life dedicated server with no luck

The binary is "hlds_i686" so "hlds_run" are likely scripts - spot a difference in them between the versions?

The error itself looks like libstdc++6 is resolved and libstdc++5 is expected.
Could also be that one or the other patchlevel LD_PRELOADs or LD_LIBRARY_PATHs some local library and the other doesn't.

Offline

#5 2016-12-15 13:43:29

jonno2002
Member
Registered: 2016-11-21
Posts: 684

Re: trying to run old half-life dedicated server with no luck

theres lots of differences between versions, the one that works just has 1 binary "hlds" and the newer version has "hlds_i686" , "hlds_i486" and "hlds_amd" and yea the script chooses which one to use, ive tried them all with the same error.

i tried ld_preloading libstdc++5 and 6 and neither work just brings up elf class errors.

guess theres no easy fix, thanks anyway guys

Offline

#6 2016-12-15 14:53:45

JohnBobSmith
Member
From: Canada
Registered: 2014-11-29
Posts: 804

Re: trying to run old half-life dedicated server with no luck

ELF errors means you need the opposite bit to what you have. For example: If you have 32 bit libstdc++, try the 64 bit one and vice-versa. Running file on an executable will show the elf. Example (brightup is my brightness changing executable):

[jbs@dmb-gaming-laptop .utils]$ file brightup 
brightup: setuid ELF 64-bit LSB executable, x86-64, 
...

Last edited by JohnBobSmith (2016-12-15 14:54:27)


I am diagnosed with bipolar disorder. As it turns out, what I thought was my greatest weakness is now my greatest strength.

Everyday, I make a conscious choice to overcome my challenges and my problems. It's not easy, but its better than the alternative...

Offline

#7 2016-12-15 15:44:52

seth
Member
Registered: 2012-09-03
Posts: 51,456

Re: trying to run old half-life dedicated server with no luck

> i tried ld_preloading libstdc++5 and 6
To support what John said and in case that's not obvious: You need to preload the lib32 variants ;-)
Also ldd all binaries you seek to run to see where and what they resolve by default. You might have to juggle symlinks to kick them into the proper direction. (Notably compare the working and broken resolutions)

Offline

#8 2016-12-17 01:23:19

jonno2002
Member
Registered: 2016-11-21
Posts: 684

Re: trying to run old half-life dedicated server with no luck

yip tried both 32 and 64bit ld_preload, both say incorrect elf class, have run ldd on all binaries and all dependencies are resolved correctly (32bit)

i think the latest update just will not work on a 64bit system at all, i had a 64bit debian vbox handy as well so i enabled multiarch on that and gave it a go and got the same errors as on arch 64bit, so id say ill have to stick to running it in a 32bit vbox or install 32bit arch which i highly doubt ill do just for one program.

thanks for all the suggestions!

Offline

Board footer

Powered by FluxBB