Prelinking is a technique to reduce the cost of shared libraries in terms of memory usage and startup time.
Ever since Linux has had ELF support, shared libraries have been compiled as position independent code. Libraries are assigned runtime addresses in arbitrary fashion by the dynamic linker. Before these libraries can actually be used, all absolute memory references need to be adjusted to take account of the runtime location. This has two bad effects, namely
*
if there are many relocations, this process can add significantly
to application startup time*
applying relocations creates many dirty pages, increasing memory
footprint.Prelinking allows each library to be assigned a preferred address, and relocated to this address, in advance. At run time, if this address slot is available then no further relocation processing needs to be done.
To use prelink, glibc 2.3 and a recent version of GNU binutils is required. As of 2002-11-27, a prelink-ready glibc and the prelink utility itself are in Familiar unstable. Code to be prelinked needs to be built with -z combreloc. There is no requirement for any particular compiler.
I know prelinking can be malign with some software, at least it brings some trouble with Quake II, I've hacked a bit of Q2 engine and most of it is loaded by modules, sometimes you get a nasty seg fault due to prelinking on glibc 2.3.x. Everything started working fine since prelinking was disabled... on unreal engine (AAO, UT2K3, UT and TO) I had no problems, on Q3A based games, no problems either... on HLDS dunno for sure, since I am running them on a non-tls, non-prelinking, non-execshield enabled system.
nmarques
Mike Kercher wrote:
I guess not since I don't know what it is. Can you explain please?
Mike
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Nelson Marques Sent: Tuesday, January 13, 2004 9:46 AM To: [EMAIL PROTECTED] Subject: Re: [hlds_linux] Server Still Crashes
Do you have prelinking enabled ?
Mike Kercher wrote:
Anyone have any suggestions?src load
Downloading Security Module from Speakeasy.net ... Loaded plugin 'CS STATS' successfully Currently loaded plugins: description stat pend file vers
ini ANY ANYunlod [ 1] AMX RUN - amx_mm_i386.so v0.9.7
[ 2] Adminmod RUN - admin_MM_i386.so v2.50.58ini Start
ini ChlvlStart [ 3] STATSME RUN - sm_cstrike_mm_i3 v2.7.1
cmd ANY ANYChlvl [ 4] CS STATS RUN - csstats_mm_i386. v0.9.7
src load4 plugins, 4 running Loaded plugin 'FUN' successfully Currently loaded plugins: description stat pend file vers
ini ANY ANYunlod [ 1] AMX RUN - amx_mm_i386.so v0.9.7
[ 2] Adminmod RUN - admin_MM_i386.so v2.50.58ini Start
ini ChlvlStart [ 3] STATSME RUN - sm_cstrike_mm_i3 v2.7.1
cmd ANY ANYChlvl [ 4] CS STATS RUN - csstats_mm_i386. v0.9.7
[ 5] FUN RUN - fun_mm_i386.so v0.9.8cmd ANY ANY
src load5 plugins, 5 running Loaded plugin 'XtraFun' successfully Currently loaded plugins: description stat pend file vers
ini ANY ANYunlod [ 1] AMX RUN - amx_mm_i386.so v0.9.7
[ 2] Adminmod RUN - admin_MM_i386.so v2.50.58ini Start
ini ChlvlStart [ 3] STATSME RUN - sm_cstrike_mm_i3 v2.7.1
cmd ANY ANYChlvl [ 4] CS STATS RUN - csstats_mm_i386. v0.9.7
[ 5] FUN RUN - fun_mm_i386.so v0.9.8cmd ANY ANY
[ 6] XtraFun RUN - xtrafun_mm_i386. v1.2cmd ANY
src loadPause 6 plugins, 6 running Loaded plugin 'Vexd Util. Module' successfully Currently loaded plugins: description stat pend file vers
ini ANY ANYunlod [ 1] AMX RUN - amx_mm_i386.so v0.9.7
[ 2] Adminmod RUN - admin_MM_i386.so v2.50.58ini Start
ini ChlvlStart [ 3] STATSME RUN - sm_cstrike_mm_i3 v2.7.1
cmd ANY ANYChlvl [ 4] CS STATS RUN - csstats_mm_i386. v0.9.7
[ 5] FUN RUN - fun_mm_i386.so v0.9.8cmd ANY ANY
[ 6] XtraFun RUN - xtrafun_mm_i386. v1.2cmd ANY
cmd ANY ANYPause [ 7] Vexd Util. Modu RUN - VexdUM_mm_i386.s v0.2.0.7
src load7 plugins, 7 running Loaded plugin 'WARCRAFT 3' successfully Currently loaded plugins: description stat pend file vers
ini ANY ANYunlod [ 1] AMX RUN - amx_mm_i386.so v0.9.7
[ 2] Adminmod RUN - admin_MM_i386.so v2.50.58ini Start
ini ChlvlStart [ 3] STATSME RUN - sm_cstrike_mm_i3 v2.7.1
cmd ANY ANYChlvl [ 4] CS STATS RUN - csstats_mm_i386. v0.9.7
[ 5] FUN RUN - fun_mm_i386.so v0.9.8cmd ANY ANY
[ 6] XtraFun RUN - xtrafun_mm_i386. v1.2cmd ANY
cmd ANY ANYPause [ 7] Vexd Util. Modu RUN - VexdUM_mm_i386.s v0.2.0.7
[ 8] WARCRAFT 3 RUN - war3_mm_i386.so v1.2cmd ANY
Server is inPause 8 plugins, 8 running Completed downloading Security Module from Speakeasy.net
dumped) $HL_CMDSecure Mode. ./hlds_run: line 49: 10328 Segmentation fault (core
restart inCannot access memory at address 0x400136c0 debug.cmds:1: Error in sourced command file: Cannot access memory at address 0x4173d008 email debug.log to [EMAIL PROTECTED] Tue Jan 13 08:59:40 CST 2004: Server
10 seconds ue Jan 13 08:59:45 CST 2004: Server Quitarchives, please visit:
Mike _\|/_ (@ @) -----oOOo-(_)-oOOo-----
_______________________________________________ To unsubscribe, edit your list preferences, or view the list
http://list.valvesoftware.com/mailman/listinfo/hlds_linux
_______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlds_linux
_______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlds_linux
_______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlds_linux

