Linux libs missing dependancies

Stephen Maver steve at ntropy.net
Mon Dec 20 11:16:27 PST 2004


Dear List,

I've installed the linux steam client the other day,

/usr/ports/games/linux-steam

This theoretically allows you to download and run steam based games,
such as Halflife and Counter Strike Source.

Related ports installed:
linux-steam-1.0     Half Life dedicated server running on steam
linux_base-7.1_7    The base set of packages needed in Linux mode

# uname -a
FreeBSD lupus.ntropy.net 5.3-RELEASE-p2 FreeBSD 5.3-RELEASE-p2 #1:
Sun Dec  5 16:11:09 GMT 2004 ...

# kldstat
Id Refs Address    Size     Name
 1   10 0xc0400000 39dcf8   kernel
 2   14 0xc079e000 537f0    acpi.ko
 3    1 0xc15e1000 6000     linprocfs.ko
 4    1 0xc15ef000 17000    linux.ko

I chanced it and used the linux steam client to download the Counter
Strike Source files, with no obvious problems.

When I try to run the dedicated server it immediately crashes,
probably as it should as it is linux specific I'd guess.

$ ./srcds_run  -console -game cstrike +map de_dust +maxplayers 16
 -steamuser <user> -steampass <passwd>
------
Auto detecting CPU
Using default binary.
Auto-restarting the server on crash
./srcds_i486: error while loading shared libraries:
/usr/compat/linux/lib/libm.so.6: ELF file OS ABI invalid
Mon Dec 20 17:53:37 GMT 2004: Server restart in 10 seconds
----

# ldd ./srcds_i486
./srcds_i486:
./srcds_i486: error while loading shared libraries:
/lib/libm.so.6: ELF file OS ABI invalid
./srcds_i486: exit status 127

The binary 'srcds_i486' relies on several other files that
have missing dependancies.

#  ldd bin/dedicated_i486.so
bin/dedicated_i486.so:
        libm.so.6 => not found (0x0)
        libdl.so.2 => not found (0x0)
        tier0_i486.so (0x0)
        vstdlib_i486.so (0x0)
        libc.so.6 => not found (0x0)

All of these libs exist in /usr/compat/linux/lib, and, with
the linux emulation running, are seen as being in /lib/* if I
understand it all correctly.

Also, last night I was trying to use ldd, and suicidal symbolic
linking, to show the *so files where their libs were. At one
point it failed with an error about being unable to use the
libraries as they were not freebsd native.

Sorry for the lack of the specific error I am unable to
recreate it today.

So, the questions are:

1) What would cause the error "ELF file OS ABI invalid" on
 `ldd ./srcds_i486` above ?

2) How would I go about teaching the linux *.so files where
their linux libraries are located ?

Pointers to docs, or FMs I should have read, are welcome. I
had a look through the manual and googled about on the error,
but didnt turn up anything that helped.

Thanks,

Ste



More information about the freebsd-questions mailing list