how can the ldso possibly prevent clashes ? it has no idea what
addresses an app will ask for at runtime.
plus, if the kernel is employing ASLR (which isnt uncommon nowadays),
the load addresses could be anywhere.
-mike
Well not alone, in my mind ld.so asks the memory manager through calling
mmap where it can map the shared modules inside the process address
space.. the memory manager should know what addresses are free and which
are taken .. then when the process code requires dynamic memory
allocation, it does it again through the memory manager (i.e. malloc)
avoiding of allocating memory where shared modules have been loaded into..
Again with ASLR I think the mmu should be aware of all used memory
slots, avoiding conflicts..
Well your view of random possible clashes maybe is what happens or
happened in Windows systems :D But Linux is supposed to be different,
isn't it?
Best regards,
Stefano B.