Linux Applications Debugging Techniques/Building the toolkit
The code detailed herein is slowly melted into a toolkit and is available at the LPT site.
Prerequisites[edit | edit source]
A C++11/C++0x compiler[edit | edit source]
If your distribution does not have such a compiler, compile one from scratch. First compile the gcc prerequsites, available here:
Then compile gcc itself:
./configure \ --enable-languages=c,c++ \ --prefix=/opt/lpt/gcc-4.7.0-bin \ --with-mpfr=/opt/lpt/mpfr-2.4.2-bin \ --with-mpc=/opt/lpt/mpc-0.8.1-bin \ --with-gmp=/opt/lpt/gmp-4.3.2-bin \ --with-ppl=/opt/lpt/ppl-0.11-bin \ --with-cloog=/opt/lpt/cloog-ppl-0.15.11-bin LD_LIBRARY_PATH=/opt/lpt/mpfr-2.4.2-bin/lib:/opt/lpt/mpc-0.8.1-bin/lib:/opt/lpt/gmp-4.3.2-bin/lib:/opt/lpt/ppl-0.11-bin/lib:/opt/lpt/cloog-ppl-0.15.11-bin/lib make make install
References[edit | edit source]
PAPI[edit | edit source]
This one is a straightforward ./configure && make. No need to install.
-fPIC libbfd[edit | edit source]
The call stack code has a dependency on libbfd. If you wish to link libbfd statically to cut short a dependency on the deployment machine - which may or may not have a dynamic libbfd - you need an libbfd.a that is -fPIC compiled. This flag is needed because the static library will be linked into a shared object. The plain libbfd.a coming with the platforms might not be an -fPIC one, in which case you have to compile your own.
cd binutils-2.22/bfd export CFLAGS = -fPIC /configure make
No need to install it either.
Compilation[edit | edit source]
Finally, we need to adjust the LPT Makefile:
CXX11_HOME = /opt/lpt/gcc-4.7.0-bin PAPI_HOME = /opt/lpt/papi-4.4.0/src LIBBFD_FPIC_HOME = /opt/lpt/binutils-2.22/bfd