Re: [PATCH v2] trace-cruncher: Build trace-obj-debug.c as library

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Apr 30, 2022 at 1:29 PM Yordan Karadzhov (VMware)
<y.karadz@xxxxxxxxx> wrote:
>
> The code for resolving virtual address to function name gets build
> as shared library. The library is installed as package data. Later
> this library can be used by the different sub-modules of tracecruncher.
>
> Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@xxxxxxxxx>
> ---
>
> This patch applies on top of the patch:
> https://lore.kernel.org/all/20220420080206.252356-2-tz.stoyanov@xxxxxxxxx/
>
> Changes in v2:
>  - Fixing the problem of '$ORIGIN' not being properly added to
>    the 'RUNPATH' of the shared libraries, built by the sub-modules.
>
>  Makefile | 24 +++++++++++++++++++++---
>  setup.py |  4 ++--
>  2 files changed, 23 insertions(+), 5 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 52428c0..9b62c4a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -13,13 +13,31 @@ NC  := '\e[0m'
>
>  DOCDIR = ./docs
>
> -all:
> +CC = gcc
> +CFLAGS = -fPIC -Wall -Wextra -O2 -g
> +LDFLAGS = -shared
> +RM = rm -rf
> +
> +DBG_LIB = tracecruncher/libobjdebug.so

Having an internal library to share and reuse code is very useful. It
can be used for a lot of common code, not only for bfd wrappers.
Please, can you change the name of the library to be more common? I
would suggest libtccommon.so, libtcbase.so or something like that.
Thanks!

> +PY_SETUP = setup
> +
> +DBG_SRCS = src/trace-obj-debug.c
> +DBG_OBJS = src/trace-obj-debug.o
> +
> +all: $(DBG_LIB) $(PY_SETUP)
>         @ echo ${CYAN}Buildinging trace-cruncher:${NC};
> +
> +$(PY_SETUP):
>         python3 setup.py build
>
> +$(DBG_LIB): $(DBG_OBJS)
> +       $(CC) ${LDFLAGS} -o $@ $^ -L./tracecruncher -lbfd
> +
>  clean:
> -       rm -f src/npdatawrapper.c
> -       rm -rf build
> +       ${RM} src/npdatawrapper.c
> +       ${RM} $(DBG_LIB)
> +       ${RM} src/*.o
> +       ${RM} build
>
>  install:
>         @ echo ${CYAN}Installing trace-cruncher:${NC};
> diff --git a/setup.py b/setup.py
> index 58561cf..d9e296b 100644
> --- a/setup.py
> +++ b/setup.py
> @@ -37,7 +37,7 @@ def add_library(lib, min_version,
>          libs_found.extend([(lib, lib_version)])
>
>  def third_party_paths():
> -    library_dirs = []
> +    library_dirs = ['$ORIGIN', 'tracecruncher']
>      include_dirs = [np.get_include()]
>      libs_required = [('libtraceevent', '1.5.0'),
>                       ('libtracefs',    '1.3.0'),
> @@ -61,7 +61,6 @@ include_dirs, library_dirs = third_party_paths()
>
>  def extension(name, sources, libraries):
>      runtime_library_dirs = library_dirs
> -    runtime_library_dirs.extend('$ORIGIN')
>      return Extension(name, sources=sources,
>                             include_dirs=include_dirs,
>                             library_dirs=library_dirs,
> @@ -91,6 +90,7 @@ def main():
>            url='https://github.com/vmware/trace-cruncher',
>            license='LGPL-2.1',
>            packages=find_packages(),
> +          package_data={'tracecruncher': ['libobjdebug.so']},
>            ext_modules=[module_ft, module_data, module_ks],
>            classifiers=[
>                'Development Status :: 4 - Beta',
> --
> 2.32.0
>


-- 
Tzvetomir (Ceco) Stoyanov
VMware Open Source Technology Center



[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux