On Mon, Dec 06, 2004 at 10:13:05AM -0500, Brian Gerst wrote: > there is no address range conflict at startup. There needs to be a way > to disable prelinked libraries for specific processes at execve time, so > the libraries load at the "legacy" address range for that process. There is no separate set of prelinked and non-prelinked libraries. You can tell the dynamic linker to not honor the chosen library addresses by setting LD_USE_LOAD_BIAS=0 in the environment of the program where you need that. But this doesn't affect kernel's placement of the binary (unless it is a PIE this is hardcoded no matter what) and ld.so. To prevent ld.so from being placed at certain addresses you can put an p_flags = 0 PT_LOAD segment covering the range you want to reserve into the wine executable, or do what wine does for several months already, i.e. have statically linked program that does kernel's job of mapping the binary and the dynamic linker into the address space and giving control to the dynamic linker. Jakub