On 07/28/2017 03:20 PM, Jakub Jelinek wrote:
I think it is seriously flawed optimization that should be at least
turned
off by default. If people are willing to do this mess on ppc64le for some
libraries, they should request it explicitly, but we certainly shouldn't
make the implementation details part of exported ABI for all shared
libraries. Then the ABI depends even on compiler flags used to compile the
routines etc., you recompile with -O0 and suddenly you've changed ABI.
Furthermore, how does it work with symbol interposition? Say if malloc
happened to not clobber/use r2 and does not use r12, you suddenly couldn't
use ElectricFence or valgrind or AddressSanitizer where the implementation
would need to do that.
All the things you list are potentially broken. As I said, it's not
worth discussing this. It's not supportable.
I don't even want to ship this as an optional feature.
Thanks,
Florian