You do not need to recompile code to do block profiling. However, the executables and shared objects that use the code does need to be relinked.
Using the same example described previously:
If the code is usually compiled this way:
$ cc -c travel.c $ cc -c misc.c $ cc -o travel travel.o misc.o
Change it to:
$ cc -c travel.c $ cc -c misc.c $ ld -r -o all.o travel.o misc.o $ fur -b all -c mklog all.o $ cc -o travel all.o log.all.oNotice that the code is compiled the same way, so if you have retained the .o files you don't have to recompile the code. mklog automatically produces log.all.o for you.