diff options
author | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2022-03-11 08:58:31 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2022-03-11 08:58:31 +0000 |
commit | bb368aad297fe3ad40cf397e6fc85aa471429a28 (patch) | |
tree | 0ab25909b8fe789d676bbdb00d501d4d485e4afe /gprofng/README | |
parent | a655f19af95eb685ba64f48ee8fc2b3b7a3d886a (diff) | |
download | binutils-bb368aad297fe3ad40cf397e6fc85aa471429a28.zip binutils-bb368aad297fe3ad40cf397e6fc85aa471429a28.tar.gz binutils-bb368aad297fe3ad40cf397e6fc85aa471429a28.tar.bz2 |
gprofng: a new GNU profiler
top-level
* Makefile.def: Add gprofng module.
* configure.ac: Add --enable-gprofng option.
* src-release.sh: Add gprofng.
* Makefile.in: Regenerate.
* configure: Regenerate.
* gprofng: New directory.
binutils
* MAINTAINERS: Add gprofng maintainer.
* README-how-to-make-a-release: Add gprofng.
include.
* collectorAPI.h: New file.
* libcollector.h: New file.
* libfcollector.h: New file.
Diffstat (limited to 'gprofng/README')
-rw-r--r-- | gprofng/README | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/gprofng/README b/gprofng/README new file mode 100644 index 0000000..66d2e7c --- /dev/null +++ b/gprofng/README @@ -0,0 +1,100 @@ +What is gprofng? + + Gprofng is the GNU Next Generation profiler for analyzing the performance + of Linux applications. Gprofng allows you to: + - Profile C / C++ / Java / Scala applications without needing to recompile + - Profile multi-threaded applications + - Analyze and compare multiple experiments + - Use time-based sampling and / or hardware event counters + +Building gprofng + + Gprofng is distributed with binutils. To build gprofng, you build binutils. + Overview: + 1. Set paths + 2. Verify prerequisites + 3. Git clone + 4. Configure, make, and make install + Details follow for each of these. + +1. Set paths + + If you are configuring binutils for the default location, it will use: + /usr/local + In your shell initialization procedure, set your paths using commands + similar to these: + export PATH=/usr/local/bin:$PATH + export MANPATH=/usr/local/share/man:$MANPATH + export INFOPATH=/usr/local/share/info/:$INFOPATH + +2. Verify prerequisites + + To build a recent version of binutils, it is useful to have a developer + system with the most recent compilers, libraries, and operating system. + Development systems will typically already include most of these: + + bison bison-devel bzip2 elfutils-debuginfod-client-devel + expat-devel flex gcc gcc-c++ git-core git-core-doc gmp-devel + help2man libbabeltrace-devel libipt-devel m4 make mpfr-devel + ncurses-devel perl-Data-Dumper tar texinfo xz zlib-devel + java-17-openjdk-devel + + CAUTION: The list of prerequisites changes depending on your operating system + and changes as binutils evolves. The list above is a snapshot of the useful + packages in early 2022 for Red Hat Enterprise Linux and Oracle Linux. + + Your system may use other packages; for example, you may be able to use a + different version of Java than shown above. If there are failures, you may + need to search for other packages as described in the "Hints" section below. + +3. Git clone + + Select a binutils repository and a branch that you would like + to start from. For example, to clone from the master at + sourceware.org, you could say: + git clone http://sourceware.org/git/binutils-gdb.git CloneDir + +4. Configure, make, and install + + There are many options for configure (see: configure --help). For example, + --prefix sets the destination, as described in the "Hints" section below. + If the default destination /usr/local is acceptable for your needs, then + after the clone operation finishes, you can simply say: + + mkdir build + cd build + ../CloneDir/configure + make + sudo make install + +Getting started + + To start using gprofng, see the tutorial available by saying: + info gprofng + +Hints and tips for building binutils + + - Use the script(1) command to write a log of your build. + + - If you run multiple commands at once (for example: make --jobs=10) then you + should also use make option: + --output-sync + Without --output-sync, the log would be difficult to interpret. + + - Search the log for errors and warnings, for example: + configure: WARNING: <package> is missing or unusable; some features + may be unavailable. + The above message suggests that <package> may be needed on your system. + + - Sometimes the above message is not sufficiently specific to guide you to + the right package. In the directory where the failure happens, config.log + may identify a specific missing file, and your package manager may allow + you to search for it. For example, if build/gprofng/config.log shows that + javac is missing, and if your package manager is dnf, you could try: + dnf --repo='*' whatprovides '*/javac' + + - You can set a custom destination directory using configure --prefix. + This is useful if you prefer not to change /usr/local, or if you are not + allowed to do so. If you set a custom prefix, be sure to change all three + paths mentioned in the PATH section above. + |