summaryrefslogtreecommitdiff
path: root/package/ltrace
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-04-30 13:26:35 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2014-04-30 13:31:20 +0200
commit5a43da1af12df3a39cd30b724bf9144850bd2764 (patch)
tree1480c5d41b739168d930ddf503f407218e35b98d /package/ltrace
parent30d6f21d2fb3ca89a86346994a70a436afbb2e14 (diff)
experimental midori support
Diffstat (limited to 'package/ltrace')
-rw-r--r--package/ltrace/Makefile26
-rw-r--r--package/ltrace/patches/patch-breakpoints_c14
-rw-r--r--package/ltrace/patches/patch-breakpoints_c.orig14
-rw-r--r--package/ltrace/patches/patch-handle_event_c19
-rw-r--r--package/ltrace/patches/patch-proc_c32
5 files changed, 105 insertions, 0 deletions
diff --git a/package/ltrace/Makefile b/package/ltrace/Makefile
new file mode 100644
index 000000000..a8464d55a
--- /dev/null
+++ b/package/ltrace/Makefile
@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:= ltrace
+PKG_VERSION:= 0.7.3
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 2cb7660738b1e28fd84ce0dc06f6ea69
+PKG_DESCR:= intercepts and records dynamic library calls
+PKG_SECTION:= debug
+PKG_DEPENDS:= libelf
+PKG_BUILDDEP:= libelf
+PKG_URL:= http://ltrace.org/
+PKG_SITES:= https://alioth.debian.org/frs/download.php/file/3948/
+
+include $(TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LTRACE,ltrace,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+ltrace-install:
+ $(INSTALL_DIR) $(IDIR_LTRACE)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/ltrace \
+ $(IDIR_LTRACE)/usr/sbin
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/ltrace/patches/patch-breakpoints_c b/package/ltrace/patches/patch-breakpoints_c
new file mode 100644
index 000000000..0c8d77c8b
--- /dev/null
+++ b/package/ltrace/patches/patch-breakpoints_c
@@ -0,0 +1,14 @@
+--- ltrace-0.7.3.orig/breakpoints.c 2013-09-09 11:46:54.000000000 +0200
++++ ltrace-0.7.3/breakpoints.c 2013-10-16 11:26:00.000000000 +0200
+@@ -159,9 +159,10 @@ int
+ breakpoint_clone(struct breakpoint *retp, struct Process *new_proc,
+ struct breakpoint *bp, struct Process *old_proc)
+ {
++ __attribute__((unused))int rc;
+ struct library_symbol *libsym = NULL;
+ if (bp->libsym != NULL) {
+- int rc = proc_find_symbol(new_proc, bp->libsym, NULL, &libsym);
++ rc = proc_find_symbol(new_proc, bp->libsym, NULL, &libsym);
+ assert(rc == 0);
+ }
+
diff --git a/package/ltrace/patches/patch-breakpoints_c.orig b/package/ltrace/patches/patch-breakpoints_c.orig
new file mode 100644
index 000000000..6c69f0d34
--- /dev/null
+++ b/package/ltrace/patches/patch-breakpoints_c.orig
@@ -0,0 +1,14 @@
+--- ltrace-0.7.3.orig/breakpoints.c 2013-09-09 11:46:54.000000000 +0200
++++ ltrace-0.7.3/breakpoints.c 2013-10-16 11:13:21.000000000 +0200
+@@ -159,9 +159,10 @@ int
+ breakpoint_clone(struct breakpoint *retp, struct Process *new_proc,
+ struct breakpoint *bp, struct Process *old_proc)
+ {
++ int rc;
+ struct library_symbol *libsym = NULL;
+ if (bp->libsym != NULL) {
+- int rc = proc_find_symbol(new_proc, bp->libsym, NULL, &libsym);
++ rc = proc_find_symbol(new_proc, bp->libsym, NULL, &libsym);
+ assert(rc == 0);
+ }
+
diff --git a/package/ltrace/patches/patch-handle_event_c b/package/ltrace/patches/patch-handle_event_c
new file mode 100644
index 000000000..c40853052
--- /dev/null
+++ b/package/ltrace/patches/patch-handle_event_c
@@ -0,0 +1,19 @@
+--- ltrace-0.7.3.orig/handle_event.c 2013-02-05 12:05:39.000000000 +0100
++++ ltrace-0.7.3/handle_event.c 2013-10-16 11:29:03.000000000 +0200
+@@ -533,6 +533,7 @@ calc_time_spent(Process *proc) {
+
+ static void
+ handle_sysret(Event *event) {
++ __attribute__((unused))unsigned d;
+ debug(DEBUG_FUNCTION, "handle_sysret(pid=%d, sysnum=%d)", event->proc->pid, event->e_un.sysnum);
+ if (event->proc->state != STATE_IGNORED) {
+ if (opt_T || options.summary) {
+@@ -544,7 +545,7 @@ handle_sysret(Event *event) {
+ event->e_un.sysnum));
+
+ assert(event->proc->callstack_depth > 0);
+- unsigned d = event->proc->callstack_depth - 1;
++ d = event->proc->callstack_depth - 1;
+ assert(event->proc->callstack[d].is_syscall);
+ callstack_pop(event->proc);
+ }
diff --git a/package/ltrace/patches/patch-proc_c b/package/ltrace/patches/patch-proc_c
new file mode 100644
index 000000000..5571a51c3
--- /dev/null
+++ b/package/ltrace/patches/patch-proc_c
@@ -0,0 +1,32 @@
+--- ltrace-0.7.3.orig/proc.c 2013-02-05 12:05:39.000000000 +0100
++++ ltrace-0.7.3/proc.c 2013-10-16 11:37:49.000000000 +0200
+@@ -329,6 +329,7 @@ clone_single_bp(void *key, void *value,
+ int
+ process_clone(struct Process *retp, struct Process *proc, pid_t pid)
+ {
++ __attribute__((unused))int rc;
+ if (process_bare_init(retp, proc->filename, pid, 0) < 0) {
+ fail1:
+ fprintf(stderr, "failed to clone process %d->%d : %s\n",
+@@ -432,7 +433,7 @@ process_clone(struct Process *retp, stru
+ * library. */
+ if (!elem->is_syscall && elem->c_un.libfunc != NULL) {
+ struct library_symbol *libfunc = elem->c_un.libfunc;
+- int rc = proc_find_symbol(retp, libfunc,
++ rc = proc_find_symbol(retp, libfunc,
+ NULL, &elem->c_un.libfunc);
+ assert(rc == 0);
+ }
+@@ -937,10 +938,11 @@ proc_add_breakpoint(struct Process *proc
+ void
+ proc_remove_breakpoint(struct Process *proc, struct breakpoint *bp)
+ {
++ __attribute__((unused))struct breakpoint *removed;
+ debug(DEBUG_FUNCTION, "proc_remove_breakpoint(pid=%d, %s@%p)",
+ proc->pid, breakpoint_name(bp), bp->addr);
+ check_leader(proc);
+- struct breakpoint *removed = dict_remove(proc->breakpoints, bp->addr);
++ removed = dict_remove(proc->breakpoints, bp->addr);
+ assert(removed == bp);
+ }
+