
1) perf build
=============
The perf build process consists of several separated building blocks,
which are linked together to form the perf binary:
  - libperf library (static)
  - perf builtin commands
  - traceevent library (static)
  - GTK ui library

Several makefiles govern the perf build:

  - Makefile
    top level Makefile working as a wrapper that calls the main
    Makefile.perf with a -j option to do parallel builds.

  - Makefile.perf
    main makefile that triggers build of all perf objects including
    installation and documentation processing.

  - tools/build/Makefile.build
    main makefile of the build framework

  - tools/build/Build.include
    build framework generic definitions

  - Build makefiles
    makefiles that defines build objects

Please refer to tools/build/Documentation/Build.txt for more
information about build framework.


2) perf build
=============
The Makefile.perf triggers the build framework for build objects:
   perf, libperf, gtk

resulting in following objects:
  $ ls  *-in.o
  gtk-in.o  libperf-in.o  perf-in.o

Those objects are then used in final linking:
  libperf-gtk.so <- gtk-in.o  libperf-in.o
  perf           <- perf-in.o libperf-in.o


NOTE this description is omitting other libraries involved, only
     focusing on build framework outcomes

3) Build with ASan or UBSan
==========================
  $ cd tools/perf
  $ make DESTDIR=/usr
  $ make DESTDIR=/usr install

AddressSanitizer (or ASan) is a GCC feature that detects memory corruption bugs
such as buffer overflows and memory leaks.

  $ cd tools/perf
  $ make DEBUG=1 EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=address'
  $ ASAN_OPTIONS=log_path=asan.log ./perf record -a

ASan outputs all detected issues into a log file named 'asan.log.<pid>'.

UndefinedBehaviorSanitizer (or UBSan) is a fast undefined behavior detector
supported by GCC. UBSan detects undefined behaviors of programs at runtime.

  $ cd tools/perf
  $ make DEBUG=1 EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=undefined'
  $ UBSAN_OPTIONS=print_stacktrace=1 ./perf record -a

If UBSan detects any problem at runtime, it outputs a “runtime error:” message.
