Boost logo

Boost-Build :

From: Christopher Currie (Christopher_at_[hidden])
Date: 2003-09-17 11:38:38

One of the tools that our developers depend on for debugging is
IBM/Rational Purify which, for those who aren't familiar, is a tool that
adds code into an executable to detect memory leaks, freed or
uninitialized memory reads, and other sometimes hard to detect
programming errors.

The typical usage of purify is to add it to the front of the normal
compilation command line, so if my normal build script would execute:

CC -c -o foo.o foo.cpp
CC -o bar foo.o

Then to compile under purify would look like:

purify CC -c -o foo.cpp
purify CC -o bar foo.o

I'd like to develop a "purify.jam" toolset to implement this behavior,
but I'm not exactly sure where to start. I envision a usage like:

# user-config.jam
# Set up the default toolsets
using gcc ;
using msvc : 6.5 : C:/msvc6 ;
using msvc : 7.0 : C:/msvc7 ;

# Purify might only be supported under one version
using purify : msvc-6.5 ;

I'd like it cover all the supported toolsets in case we decide to switch
from our current compiler (Sun CC), but there currently isn't an
established variable or feature that they all share that I can override.
Many toolsets (including my own sun.jam) hardcode the name of the
compiler executable in the "actions", making it difficult to extend.

I've been thinking about the usefulness of introducing a "compiler"
module that would extend toolset, add some common features and hooks for
extension, and then specific toolset modules (those that are compilers)
would extend from the compiler toolset. This would provide a standard
set of subfeatures that could then be modified by a purify toolset.

Thoughts, suggestions? Thanks in advance,



Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at