|
From: Nicholas N. <nj...@cs...> - 2005-08-05 15:58:38
|
Hi, In Valgrind 2.4.0, we built Valgrind as a position-independent executable (PIE) if the toolchain supported it. This turned out to cause quite a few problems -- people having random, inexplicable crashes. So for 3.0.0 we turned it off by default because it was causing too many problems. As a result of all this, it unfortunately seems like --enable-pie/--disable-pie has taken on a mythical status... as though we deliberately shipped a crippled Valgrind and you have to find the special configure option to get it to work, bwaha! So I'm trying to clear up the confusion. Here's a summary: - 3.0.0 does not use PIE by default. This is much more stable. Do not use --enable-pie unless you have to. - Any why would you have to? Because a PIE build can give your program more address space when running under Valgrind, particularly on AMD64. - However, as we have seen, using PIE is a bit flaky and has caused problems on many systems. In short: don't use --enable-pie when configuring Valgrind unless you know you need the extra address space it allows. And if you do use it, don't be shocked if Valgrind crashes. We'd like to fix these problems, but we don't understand them yet. Any information people can shed on them would be great, but as usual, saying "I built with PIE and Valgrind crashes!! What's wrong??" isn't very helpful. The more relevant information you can provide, the better. N |