I’ve been trying this already several times over the last three months, but always failed to build the latest Valgrind from sources on my Debian box. At last I had success.
The problem appears to be that for some unknown reasons GNU Make (or one of its callees, e.g. the shell?!) acts up on cd $$subdir which is used in numerous places in the Makefiles in the source tree. This is taken from the make files, so it will collapse to cd $subdir before the shell gets to see it. $subdir is in most cases a variable in a for loop, iterating over subdirectories of the “current” one. Strangely enough all seemed right, the include subdirectory exists, it contains a Makefile and so on. I even inserted some additional commands before the cd in order to get some diagnostic output. The output of pwd suggested that we were in the right folder, the value of $subdir was correct and all side conditions seemed in order. But still, it wouldn’t build.
So I used the dirty trick (also archived in the valgrind-users mailing list) to modify the Makefile.in files to replace all occurrences of cd $$subdir with cd $(CURDIR)/$$subdir and suddenly everything worked after running configure again. Magic … 😉
Here’s the line I used:
find -name 'Makefile.in' -exec \
sed -i 's/cd \$\$subdir/cd \$(CURDIR)\/\$\$subdir/' {} \;
That took care of it for me. So I’m a happy Valgrind 3.5.0 user now, instead of using 3.3.1 as it comes with Debian 5.0.3.
// Oliver
PS: The reason why we replace it in Makefile.in is that this way running configure again will not undo our modifications, because those files are used to create the actual Makefiles.
Pingback: Getting Valgrind to build on Debian 5.0.3 | Debian-News.net - Your one stop for news about Debian
strange, I’ve never had problems compiling it!
you should really use valkyrie too, unfortunately it only works with 3.4 for now, not 3.5.
See the next post “Not Valgrind, CDPATH” – it explains the cause.