Special Instructions For Developers

Want to rebuild our instrumented packages from source? Want to instrument your own code? There are a few things you need to know.

Rebuilding Our SRPMS

Our SRPMS have been modified to include build hooks for sampled instrumentation. If you rebuild them using the standard rpmbuild command, you will end up with non-instrumented binaries substantially identical to the standard packages. To build with instrumentation, use the /usr/lib/sampler/tools/rpmbuild wrapper script which is part of the sampler-devel package.

Our data analysis job is easier if we know where all the binaries came from. So if you do rebuild these packages, please set up and use your own report collection server as well. All you need is an Apache web server with mod_unique_id and the CGI script found in the sampler-server package. Please do not upload reports from your rebuilt packages into our server.

Instrumenting Your Own Code

The sampler-devel package contains everything you need to build your own instrumented code. Please see the online documentation for more information on using the sampler. Be forewarned: this documentation is both incomplete and frightfully unattractive. We are still getting the hang of DocBook.

If you do instrument your own code, please set up and use your own report collection server as well. Upoading reports from your code into our server is not useful, because without access to your build tree, we really cannot make much sense of the uploaded data. Again, all you need is an Apache web server with mod_unique_id and the CGI script found in the sampler-server package.

Hacking on the Instrumentor Itself

Source code for the instrumentor is available in source RPMs and gzip’d tar archives. All are signed using the sampler package builder’s public GPG key.

CIL provides libraries needed to build the sampler’s instrumentor. If you are rebuilding the sampler from sources, you must build and install CIL first. If you are using source or binary RPMs, then the RPM packaging information will enforce proper ordering for you.

Both CIL and the sampler are partially writen in Objective Caml. You will need to install OCaml if you want to rebuild CIL and/or the sampler from sources. Source and binary distributions of OCaml are available for a variety of platforms from the OCaml distribution page. Note that OCaml is only needed to build the sampler from source. It is not needed to use the sampler or to run instrumented applications.

If you are only using the binary RPMs posted here, then you do not need to install OCaml.