aboutsummaryrefslogtreecommitdiff
path: root/gprofng/README
diff options
context:
space:
mode:
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>2022-03-11 08:58:31 +0000
committerNick Clifton <nickc@redhat.com>2022-03-11 08:58:31 +0000
commitbb368aad297fe3ad40cf397e6fc85aa471429a28 (patch)
tree0ab25909b8fe789d676bbdb00d501d4d485e4afe /gprofng/README
parenta655f19af95eb685ba64f48ee8fc2b3b7a3d886a (diff)
downloadbinutils-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/README100
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.
+