Message ID | 20201209134203.428068-1-y.karadz@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | Start KernelShark v2 transformation | expand |
On Wed, 9 Dec 2020 15:41:36 +0200 "Yordan Karadzhov (VMware)" <y.karadz@gmail.com> wrote: > In this patch-set we are starting the introduction of the changes > in the C API of libkshark. The goal of this transformation is to > turn KernelShark into a general purpose toolkit for analysis of > tracing data that is no longer strongly coupled to the Ftrace/trace-cmd > data format. At the end of the transformation KernelShark will be able > to merge and simultaneously visualize data from different tracers, > recorded in different data formats. It will also significantly extend > the possibilities for user customization. > > This patch-set transforms the way KernelShark processes the raw tracing > data. Later, in a consecutive patch-sets we will introduce the changes > in the visualization instruments and in the KernelShark GUI itself. > > Steven, > I believe all patches in this set are ready to move upstream. > Thanks Yordan, I just realized that the current repo doesn't build against the latest libtracefs, because the library's location has moved. I noticed that the CMake files have it hard coded with: find_library(TRACEFS_LIBRARY NAMES tracefs/libtracefs.a find_library(TRACEFS_LIBRARY NAMES tracefs/libtracefs.so) Is there a way to make cmake use pkg-config? pkg-config --cflags --libs libtracefs Will give us the correct includes and libraries for building against libtracefs if installed. We'll want the same for libtraceevent and libtracecmd as well. -- Steve
On 2020-12-09 21:38:22 (-0500), Steven Rostedt wrote: > On Wed, 9 Dec 2020 15:41:36 +0200 > "Yordan Karadzhov (VMware)" <y.karadz@gmail.com> wrote: > I just realized that the current repo doesn't build against the latest > libtracefs, because the library's location has moved. I noticed that > the CMake files have it hard coded with: > > find_library(TRACEFS_LIBRARY NAMES tracefs/libtracefs.a > find_library(TRACEFS_LIBRARY NAMES tracefs/libtracefs.so) > > Is there a way to make cmake use pkg-config? > > pkg-config --cflags --libs libtracefs > > Will give us the correct includes and libraries for building against > libtracefs if installed. > > We'll want the same for libtraceevent and libtracecmd as well. find_package() [1] is usually used for package discovery in cmake-land. If the NAMES argument is provided it overrides any provided package name. In more complex cases (of the package) it is better to have the package ship with a find_<PACKAGE>.cmake file that will be automatically used by cmake if it is installed in the system locations. To use pkg-config/pkgconf directly, it is possible to make use of the FindPkgConfig [2] module. Best, David P.S.: Out of context: Why is the cmake minimum requirement so low? To make use of useful features in cmake it needs to be at least 3.4, better higher even. [1] https://cmake.org/cmake/help/latest/command/find_package.html#command:find_package [2] https://cmake.org/cmake/help/latest/module/FindPkgConfig.html
Hi David, On 10.12.20 г. 10:48 ч., David Runge wrote: > On 2020-12-09 21:38:22 (-0500), Steven Rostedt wrote: >> On Wed, 9 Dec 2020 15:41:36 +0200 >> "Yordan Karadzhov (VMware)" <y.karadz@gmail.com> wrote: >> I just realized that the current repo doesn't build against the latest >> libtracefs, because the library's location has moved. I noticed that >> the CMake files have it hard coded with: >> >> find_library(TRACEFS_LIBRARY NAMES tracefs/libtracefs.a >> find_library(TRACEFS_LIBRARY NAMES tracefs/libtracefs.so) >> >> Is there a way to make cmake use pkg-config? >> >> pkg-config --cflags --libs libtracefs >> >> Will give us the correct includes and libraries for building against >> libtracefs if installed. >> >> We'll want the same for libtraceevent and libtracecmd as well. > > find_package() [1] is usually used for package discovery in cmake-land. > If the NAMES argument is provided it overrides any provided package > name. > In more complex cases (of the package) it is better to have the > package ship with a find_<PACKAGE>.cmake file that will be automatically > used by cmake if it is installed in the system locations. I agree. This is indeed the proper way to get CMake find the libtracefs automatically. And we should do the same for libtraceevent. > > To use pkg-config/pkgconf directly, it is possible to make use of > the FindPkgConfig [2] module. > > Best, > David > > P.S.: Out of context: Why is the cmake minimum requirement so low? To > make use of useful features in cmake it needs to be at least 3.4, better > higher even. > This is legacy and it has to be updated. Absolutely. Thanks a lot! Yordan > [1] https://cmake.org/cmake/help/latest/command/find_package.html#command:find_package > [2] https://cmake.org/cmake/help/latest/module/FindPkgConfig.html >
On Thu, 10 Dec 2020 09:48:02 +0100 David Runge <dave@sleepmap.de> wrote: > On 2020-12-09 21:38:22 (-0500), Steven Rostedt wrote: > > On Wed, 9 Dec 2020 15:41:36 +0200 > > "Yordan Karadzhov (VMware)" <y.karadz@gmail.com> wrote: > > I just realized that the current repo doesn't build against the latest > > libtracefs, because the library's location has moved. I noticed that > > the CMake files have it hard coded with: > > > > find_library(TRACEFS_LIBRARY NAMES tracefs/libtracefs.a > > find_library(TRACEFS_LIBRARY NAMES tracefs/libtracefs.so) > > > > Is there a way to make cmake use pkg-config? > > > > pkg-config --cflags --libs libtracefs > > > > Will give us the correct includes and libraries for building against > > libtracefs if installed. > > > > We'll want the same for libtraceevent and libtracecmd as well. > > find_package() [1] is usually used for package discovery in cmake-land. > If the NAMES argument is provided it overrides any provided package > name. > In more complex cases (of the package) it is better to have the > package ship with a find_<PACKAGE>.cmake file that will be automatically > used by cmake if it is installed in the system locations. > > To use pkg-config/pkgconf directly, it is possible to make use of > the FindPkgConfig [2] module. > Yeah, that FindPkgConfig module looks like what we need. > Best, > David > > P.S.: Out of context: Why is the cmake minimum requirement so low? To > make use of useful features in cmake it needs to be at least 3.4, better > higher even. Note, I've never used cmake before Yordan introduced it to KernelShark. This question is better answered by Yordan. -- Steve > > [1] https://cmake.org/cmake/help/latest/command/find_package.html#command:find_package > [2] https://cmake.org/cmake/help/latest/module/FindPkgConfig.html >