Re:A ToC of the 20-part linker essay (2008)
by quotemstr on Monday July 14, 2014 @02:06AM
(#8029687)
C++ exceptions exempted (see -Bsymbolic-functions), anything broken with -Bsymbolic is inherently broken and ought to be fixed. The same goes for symbol interposition. There are ways of providing extension points that are saner than allowing any shared library that happens to be loaded into your process the ability to override one of your functions.
Ought to be fixed doesn't mean will be fixed, unfortunately. Especially when the people doing the fixing wouldn't be the developers. Fortunately there aren't too many applications that rely on interposition to function.
As for myself: I've only ever used symbol interposition for debugging, instrumentation, etc . . . for which it was quite useful (as I've said). I pay attention to what my libraries export, so accidental interposition has never been a problem for me. (Making that easier by default is something that I would support.) I'll happily discuss the matter further, but I'm not interested in arguing it.
I wouldn't recommend -Bsymbolic by default unless you know it's safe for your environment, though. There is software that uses symbol interposition to 'productive' ends in production (not much of it, thank heavens). Mobile platforms are something of a special case.