Messages in this thread | | | Date | Thu, 9 Dec 1999 00:08:15 +0100 | From | Pavel Machek <> | Subject | Re: What I suspect |
| |
Hi!
> What I was talking about is what happens if a program has a function > called "mmap64()" and the library does NOT. Now the linker will decide > that there are no clashes, and will not create any fixup code - and we'll > use the prelinked libc.so without even checking anything. Right? > > Now, we upgrade libc to a new minor version. This minor version is also > pre-linked, but it now has a weak symbol mmap64() because it is starting > to use the new mmap capabilities. Now let us further assume that the > library itself references that weak mmap64 symbol somewhere.. > > Now, with the optimized pre-linking stuff, the old binary will NOT notice > that we have clash, and the library reference will use the internal weak > mmap64 instead of the object file strong mmap64. And my argument is that > that is actually the correct behaviour (it's _different_ from what happens > now as far as I can tell, but definitely not wrong).
Right. So if I do LD_PRELOAD=/lib/innocent.so program it will crash but program will work because it has to do full relink in PRELOAD case? That does not look like _correct_ behaviour. Maybe behaviour that can be tolerated, but not correct. Pavel -- I'm really pavel@ucw.cz. Look at http://195.113.31.123/~pavel. Pavel Hi! I'm a .signature virus! Copy me into your ~/.signature, please!
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |