Hello,

I have been building Linux servers for a mod for some time without
problems. Compiles fine, runs fine. The problem is that tier0_i486.so
and vstdlib_i486.so are linked with local path names. For example:

> ldd server_i486.so
        linux-gate.so.1 =>  (0xffffe000)
        libm.so.6 => /lib/tls/libm.so.6 (0x40d2c000)
        libdl.so.2 => /lib/libdl.so.2 (0x40d50000)
        /home/bgmod/srcds_l/bin/tier0_i486.so =>
/home/bgmod/srcds_l/bin/tier0_i486.so (0x40d54000)
        /home/bgmod/srcds_l/bin/vstdlib_i486.so =>
/home/bgmod/srcds_l/bin/vstdlib_i486.so (0x40d87000)
        libc.so.6 => /lib/tls/libc.so.6 (0x40d9c000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40eb2000)

This obviously creates a problem. If you use the server_i486.so on
another machine, it will not find those files unless by some chance
their srcds is installed in exactly the same place. I am using GCC
3.4.1, Xerces 2.6, and GLIBC 2.3.2. Exact versions recommended. As far
as OS goes, I've tried on 3-4 different ones with the same results.
Others have tried with the same results on other machines as well.
Some computers have the correct versions of GCC/Xerces/etc installed
on the machine initially with normal paths, others have been compiled
in the home directory and used, and others have had the correct GCC
version installed alongside the existing GCC version. Nothing makes a
difference. I can only assume it's some compile option or something
that I'm missing.

Here is the current Makefile. Everything I didn't paste hasn't been
modified from the stock Makefile:

# the name of the mod binary (_i486.so is appended to the end)
NAME=server
# the location of the vcproj that builds the mod
MOD_PROJ=../dlls/hl_sdk.vcproj
# the name of the mod configuration (typically <proj name>_<build
type><build target>)
MOD_CONFIG=hl_ReleaseHL2MPWin32

# the directory the base binaries (tier0_i486.so, etc) are located
GAME_DIR=/home/bgmod/srcds_l

# compiler options (gcc 3.4.1 or above is required)
CC=/opt/gcc-3.4.1/bin/gcc
CPLUS=/opt/gcc-3.4.1/bin/g++
CLINK=/opt/gcc-3.4.1/bin/gcc
CPP_LIB="/opt/gcc-3.4.1/lib/libstdc++.a
/opt/gcc-3.4.1/lib/gcc/i686-pc-linux-gnu/3.4.1/libgcc_eh.a"

# put any compiler flags you want passed here
USER_CFLAGS=

# link flags for your mod, make sure to include any special libraries here
LDFLAGS="-lm -ldl $(GAME_DIR)/bin/tier0_i486.so $(GAME_DIR)/bin/vstdlib_i486.so"

# XERCES 2.6.0 or above is used by the vcproj to makefile converter
XERCES_INC_DIR=/opt/xerces-2.6/usr/local/include
XERCES_LIB_DIR=/opt/xerces-2.6/usr/local/lib

Any ideas?

Thanks,

Slash

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to