From: "Yordan Karadzhov (VMware)" <y.karadz@gmail.com>
To: linux-trace-devel@vger.kernel.org
Cc: tz.stoyanov@gmail.com, "Yordan Karadzhov (VMware)" <y.karadz@gmail.com>
Subject: [PATCH v3] trace-cruncher: Build trace-obj-debug.c as library
Date: Mon, 2 May 2022 13:06:41 +0300 [thread overview]
Message-ID: <20220502100641.1903517-1-y.karadz@gmail.com> (raw)
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@gmail.com>
---
This patch applies on top of the patch:
https://lore.kernel.org/all/20220420080206.252356-2-tz.stoyanov@gmail.com/
Changes in v2:
- Fixing the problem of '$ORIGIN' not being properly added to
the 'RUNPATH' of the shared libraries, built by the sub-modules.
Changes in v3:
- The name of the library changet to 'libtcrunchbase.so'. Some Makefile
variables are changed accordingly.
Makefile | 24 +++++++++++++++++++++---
setup.py | 4 ++--
2 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index 52428c0..d359ea6 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 -lbfd
+RM = rm -rf
+
+TC_BASE_LIB = tracecruncher/libtcrunchbase.so
+PY_SETUP = setup
+
+BASE_SRCS = src/trace-obj-debug.c
+BASE_OBJS = $(BASE_SRCS:.c=.o)
+
+all: $(TC_BASE_LIB) $(PY_SETUP)
@ echo ${CYAN}Buildinging trace-cruncher:${NC};
+
+$(PY_SETUP):
python3 setup.py build
+$(TC_BASE_LIB): $(BASE_OBJS)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
+
clean:
- rm -f src/npdatawrapper.c
- rm -rf build
+ ${RM} src/npdatawrapper.c
+ ${RM} $(TC_BASE_LIB)
+ ${RM} src/*.o
+ ${RM} build
install:
@ echo ${CYAN}Installing trace-cruncher:${NC};
diff --git a/setup.py b/setup.py
index 58561cf..aca634c 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': ['*.so']},
ext_modules=[module_ft, module_data, module_ks],
classifiers=[
'Development Status :: 4 - Beta',
--
2.32.0
next reply other threads:[~2022-05-02 10:07 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-02 10:06 Yordan Karadzhov (VMware) [this message]
2022-05-03 4:16 ` [PATCH v3] trace-cruncher: Build trace-obj-debug.c as library Tzvetomir Stoyanov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220502100641.1903517-1-y.karadz@gmail.com \
--to=y.karadz@gmail.com \
--cc=linux-trace-devel@vger.kernel.org \
--cc=tz.stoyanov@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.