READ THIS FIRST: how to build DyninstAPI and its subcomponents

1) Configuration

Dyninst is now built via CMake. We recommend performing an interactive
configuration with "ccmake ." first, in order to see which options are
relevant for your system. You may also perform a batch configuration
with "cmake .".  Options are passed to CMake with -DVAR=VALUE. Common
options include:

Boost_INCLUDE_DIR 
CMAKE_BUILD_TYPE 
CMAKE_INSTALL_PREFIX
LIBDWARF_INCLUDE_DIR 
LIBDWARF_LIBRARIES 
LIBELF_INCLUDE_DIR
LIBELF_LIBRARIES 
IBERTY_LIBRARIES

CMake's default generator on Linux is normally "Unix Makefiles", and
on Windows, it will normally produce project files for the most recent
version of Visual Studio on your system. Other generators should work
but are not tested. After the CMake step concludes, you will have
appropriate Makefiles or equivalent and can build Dyninst.

We require CMake 2.6 as a minimum on all systems, and CMake 2.8.11
allows us to automatically download and build libelf/libdwarf/binutils
on ELF systems if they are needed. If you do not have a sufficiently
recent CMake, you may need to manually specify the location of these
dependencies. If you are cross-compiling Dyninst, including builds for
various Cray and Intel MIC systems, you will either need a toolchain
file that specifies how to properly cross-compile, or you will need to
manually define the appropriate compiler, library locations, include
locations, and the CROSS_COMPILING flag so that the build system will
properly evaluate what can be built and linked in your environment.

2) Building and installation

To build Dyninst and all its components, "make && make install" from
the top-level directory of the source tree. To build and install a
single component and its dependencies, do the same thing from that
component's subdirectory. Libraries will be installed into
CMAKE_INSTALL_PREFIX/INSTALL_LIB_DIR, and headers will be installed
into CMAKE_INSTALL_PREFIX/INSTALL_INCLUDE_DIR. If you wish to import
Dyninst into your own CMake projects, the export information is in
CMAKE_INSTALL_PREFIX/INSTALL_CMAKE_DIR. PDF documentation is included
and installed to CMAKE_INSTALL_PREFIX/INSTALL_DOC_DIR. If you update
the LaTeX source documents for any manuals, "make doc" will rebuild
them. Components may be built and installed individually: "make
$COMPONENT" and "make $COMPONENT-install" respectively; this will
appropriately respect inter-component dependencies.

3) What's new

INTERFACE CHANGES:

* Shared objects and executables now both correspond to
BPatch_objects, and their constituent .o files correspond to
BPatch_modules.

NEW FEATURES:

* New code example: disassembler

* Boost should now auto-detect up to version 1.59

* Initial ARM64 implementation of InstructionAPI; SIMD instructions
  are currently not supported

BUG FIXES

* Many x86 decoding bugs fixed (incorrect operand sizes, incorrect
  prefix handling)

* Memory leaks fixed in line information parsing

* Slicing no longer attempts to follow edges to or from catch blocks

* Exception block parsing properly matches glibc internals

* Line information parsing should no longer erroneously fail to return
line information; also should no longer take quadratic time

* LD_PRELOAD again works

* Relocation and instrumentation no longer trigger unnecessary parsing
  on Windows

* Windows no longer misidentifies calling conventions due to
  use-after-free string corruption
