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