Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  Build.txt   Sprache: Text

 

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.

4) Cross compilation
====================
As Multiarch is commonly supported in Linux distributions, we can install
libraries for multiple architectures on the same system and then cross-compile
Linux perf. For example, Aarch64 libraries and toolchains can be installed on
an x86_64 machine, allowing us to compile perf for an Aarch64 target.

Below is the command for building the perf with dynamic linking.

  $ cd /path/to/Linux
  $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -C tools/perf

For static linking, the option `LDFLAGS="-static"` is required.

  $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \
    LDFLAGS="-static" -C tools/perf

In the embedded system world, a use case is to explicitly specify the package
configuration paths for cross building:

  $ PKG_CONFIG_SYSROOT_DIR="/path/to/cross/build/sysroot" \
    PKG_CONFIG_LIBDIR="/usr/lib/:/usr/local/lib" \
    make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -C tools/perf

In this case, the variable PKG_CONFIG_SYSROOT_DIR can be used alongside the
variable PKG_CONFIG_LIBDIR or PKG_CONFIG_PATH to prepend the sysroot path to
the library paths for cross compilation.

Messung V0.5
C=95 H=93 G=93

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge