summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Olsa <Jiri Olsa jolsa@redhat.com>2010-08-05 16:39:27 +0200
committerJiri Olsa <Jiri Olsa jolsa@redhat.com>2010-08-05 16:39:27 +0200
commit6a8dec3f9357024a29feb5b7607342c01f8dd55f (patch)
tree54a9ecbe7acb056c5ecaa3286dd772454c1ddd5e
parent52aaa69c1ba666c91dda62e51173b773fd2a3176 (diff)
downloadlatrace-6a8dec3f9357024a29feb5b7607342c01f8dd55f.tar.gz
latrace-6a8dec3f9357024a29feb5b7607342c01f8dd55f.tar.xz
latrace-6a8dec3f9357024a29feb5b7607342c01f8dd55f.zip
separate arguments display code, so it could be
disabled for not supported architectures
-rw-r--r--ChangeLog2
-rw-r--r--Makefile6
-rw-r--r--configure.ac18
-rw-r--r--doc/asciidoc.conf.in4
-rw-r--r--src/Makefile10
-rw-r--r--src/args.h159
-rw-r--r--src/audit-init.c2
-rw-r--r--src/audit.c8
-rw-r--r--src/autoconf.h.in11
-rw-r--r--src/autoconf.make.in45
-rw-r--r--src/config.c17
-rw-r--r--src/config.h136
-rw-r--r--src/output.c2
-rw-r--r--src/run.c3
14 files changed, 240 insertions, 183 deletions
diff --git a/ChangeLog b/ChangeLog
index a227ca9..44d443d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2010-08-05 Jiri Olsa <olsajiri@gmail.com>
* changed config file magic defines
+ * separate arguments display code, so it could be
+ disabled for not supported architectures
2010-07-02 Jiri Olsa <olsajiri@gmail.com>
* fixing output for thread applications
diff --git a/Makefile b/Makefile
index 5a319ee..500f1ca 100644
--- a/Makefile
+++ b/Makefile
@@ -161,16 +161,16 @@ all:: $(PROGRAMS) LATRACE-CFLAGS
clean::
$(call remove, $(OBJS) $(PROGRAMS))
$(call remove, src/args-bison.c src/args-flex.c src/args-bison.h src/args-bison.output)
- $(call remove, lib bin share deps.make latrace-$(LT_VER))
+ $(call remove, lib bin share deps.make latrace-$(CONFIG_VERSION))
mrproper::
git clean -xdf
snapshot:
- @$(MAKE) $(PRINT_DIR) package PKG_VER=$(LT_VER)-`date "+%m%d%Y"`
+ @$(MAKE) $(PRINT_DIR) package PKG_VER=$(CONFIG_VERSION)-`date "+%m%d%Y"`
release:
- @$(MAKE) $(PRINT_DIR) package PKG_VER=$(LT_VER)
+ @$(MAKE) $(PRINT_DIR) package PKG_VER=$(CONFIG_VERSION)
package:
$(QUIET_PKG)rm -f latrace-$(PKG_VER); ln -s . latrace-$(PKG_VER); \
diff --git a/configure.ac b/configure.ac
index f889167..d16ee4c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -76,21 +76,23 @@ AC_TYPE_UINT8_T
date=`date "+%B %G"`
unamem=`uname -m | sed 's/i.86/i686/'`
-AC_SUBST(LT_DATE, "$date")
+AC_SUBST(CONFIG_DATE, "$date")
AC_SUBST(CONFIG_SYSDEP_DIR, "$unamem")
-AC_SUBST(LT_VER, "AC_PACKAGE_VERSION")
+AC_SUBST(CONFIG_VERSION, "AC_PACKAGE_VERSION")
AC_DEFINE(CONFIG_LT_CONFIG, "/tmp/lt-config", [Temporary directory prefix.])
-AC_DEFINE(LT_VER, "AC_PACKAGE_VERSION", [Version of latrace.])
+AC_DEFINE(CONFIG_VERSION, "AC_PACKAGE_VERSION", [Version of latrace.])
-if test "$unamem" = "x86_64"; then
- AC_DEFINE(LT_ARCH_X86_64, 1, [The x86_64 arch.])
-elif test "$unamem" = "i686"; then
- AC_DEFINE(LT_ARCH_X86, 1, [The x86 arch.])
+# for following architectures we have argument display support
+if test "$unamem" = "x86_64" -o\
+ "$unamem" = "i686" -o\
+ "$unamem" = "arm"; then
+ AC_DEFINE(CONFIG_ARCH_HAVE_ARGS)
+ AC_SUBST(CONFIG_ARCH_HAVE_ARGS, "y")
fi
AC_SEARCH_LIBS([cplus_demangle], [iberty_pic iberty],
- [AC_DEFINE(LT_LIBERTY, 1, "Liberty found.")],
+ [AC_DEFINE(CONFIG_LIBERTY, 1, "Liberty found.")],
[AC_MSG_WARN([libiberty not found, no demangle support (install binutils-dev)])])
AC_CONFIG_HEADER([src/autoconf.h])
diff --git a/doc/asciidoc.conf.in b/doc/asciidoc.conf.in
index 8682213..d94d1ca 100644
--- a/doc/asciidoc.conf.in
+++ b/doc/asciidoc.conf.in
@@ -2,5 +2,5 @@
author = Jiri Olsa
email = olsajiri@gmail.com
-date = @LT_DATE@
-revision = @LT_VER@
+date = @CONFIG_DATE@
+revision = @CONFIG_VERSION@
diff --git a/src/Makefile b/src/Makefile
index 0208d6f..003eb39 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -18,7 +18,7 @@
# libltaudit.so
-AUDIT_BIN=libltaudit.so.$(LT_VER)
+AUDIT_BIN=libltaudit.so.$(CONFIG_VERSION)
AUDIT_LDFLAGS="-Wl,-init=audit_init" "-Wl,-soname,$(AUDIT_BIN)" -fPIC -shared
AUDIT_LIBS=$(LIBS) $(LEXLIB)
@@ -26,12 +26,16 @@ AUDIT_OBJS=\
src/audit.o \
src/audit-init.o \
src/fifo.o \
+ src/output.o \
+ src/objsearch.o
+
+ifeq ($(CONFIG_ARCH_HAVE_ARGS),y)
+AUDIT_OBJS+=\
src/args-bison.o \
src/args-flex.o \
src/args.o \
- src/output.o \
- src/objsearch.o \
src/sysdeps/$(CONFIG_SYSDEP_DIR)/stack.o
+endif
OBJS+=$(AUDIT_OBJS)
PROGRAMS+= $(AUDIT_BIN)
diff --git a/src/args.h b/src/args.h
new file mode 100644
index 0000000..fa2d930
--- /dev/null
+++ b/src/args.h
@@ -0,0 +1,159 @@
+/*
+ Copyright (C) 2008, 2009 Jiri Olsa <olsajiri@gmail.com>
+
+ This file is part of the latrace.
+
+ The latrace is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ The latrace is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with the latrace (file COPYING). If not, see
+ <http://www.gnu.org/licenses/>.
+*/
+
+
+#ifndef ARGS_H
+#define ARGS_H
+
+struct lt_config_shared;
+
+enum {
+ LT_ARGS_DTYPE_POD = 1,
+ LT_ARGS_DTYPE_STRUCT,
+};
+
+enum {
+ LT_ARGS_TYPEID_VOID = 1,
+ LT_ARGS_TYPEID_SHORT,
+ LT_ARGS_TYPEID_USHORT,
+ LT_ARGS_TYPEID_INT,
+ LT_ARGS_TYPEID_UINT,
+ LT_ARGS_TYPEID_LONG,
+ LT_ARGS_TYPEID_ULONG,
+ LT_ARGS_TYPEID_CHAR,
+ LT_ARGS_TYPEID_UCHAR,
+ LT_ARGS_TYPEID_LLONG,
+ LT_ARGS_TYPEID_ULLONG,
+ LT_ARGS_TYPEID_DOUBLE,
+ LT_ARGS_TYPEID_FLOAT,
+
+ LT_ARGS_TYPEID_CUSTOM = 1000
+};
+
+struct lt_enum_elem {
+ char *name;
+ char *strval;
+ long val;
+ int undef;
+ struct lt_list_head list;
+};
+
+struct lt_enum {
+ char *name;
+ int cnt;
+ struct lt_enum_elem *elems;
+};
+
+struct lt_arg {
+ /* argument type */
+ int dtype;
+
+ /* argument type properties */
+ int type_id;
+ u_int type_len;
+ char *type_name;
+
+ /* argument value properties */
+ int pointer;
+ char *name;
+
+ /* for structures only */
+ int mmbcnt;
+
+ /* architecture dependent */
+ void *arch;
+
+ /* enum record */
+ struct lt_enum *en;
+
+ /* struct arguments head */
+ struct lt_list_head *args_head;
+ /* nested arguments list if present */
+ struct lt_list_head args_list;
+};
+
+struct lt_args_sym {
+ char *name;
+
+ int argcnt;
+#define LT_ARGS_RET 0
+ struct lt_arg **args;
+};
+
+struct lt_args_include {
+ FILE *yyin;
+ void *yybuf;
+ char *file;
+ int lineno;
+};
+
+/* used in lt_args_cb_struct for argument type */
+enum {
+ LT_ARGS_STRUCT_ITSELF = 0,
+ LT_ARGS_STRUCT_ARG
+};
+
+struct lt_args_data {
+ int arglen;
+
+ /* function arguments */
+ char *args_buf;
+ int args_len;
+ int args_totlen;
+
+ /* detailed structs */
+ char *argsd_buf;
+ int argsd_len;
+ int argsd_totlen;
+};
+
+/* arguments */
+int lt_args_init(struct lt_config_shared *cfg);
+int lt_args_sym_entry(struct lt_config_shared *cfg, char *sym, La_regs *regs,
+ char **argbuf, char **argdbuf);
+int lt_args_sym_exit(struct lt_config_shared *cfg, char *sym, La_regs *inregs,
+ La_retval *outregs, char **argbuf, char **argdbuf);
+int lt_args_add_enum(struct lt_config_shared *cfg, char *name,
+ struct lt_list_head *h);
+struct lt_enum_elem* lt_args_get_enum(struct lt_config_shared *cfg, char *name, char *val);
+int lt_args_add_struct(struct lt_config_shared *cfg, char *type_name,
+ struct lt_list_head *h);
+int lt_args_add_sym(struct lt_config_shared *cfg, struct lt_arg *sym,
+ struct lt_list_head *h);
+int lt_args_add_typedef(struct lt_config_shared *cfg, char *base,
+ char *new, int pointer);
+int lt_args_buf_open(struct lt_config_shared *cfg, char *file);
+int lt_args_buf_close(struct lt_config_shared *cfg);
+struct lt_arg* lt_args_getarg(struct lt_config_shared *cfg, char *type,
+ char *name, int pointer, int create, char *enum_name);
+int lt_args_cb_arg(struct lt_config_shared *cfg, struct lt_arg *arg,
+ void *pval, struct lt_args_data *data, int last,
+ int dspname);
+int lt_args_cb_struct(struct lt_config_shared *cfg, int type,
+ struct lt_arg *arg, void *pval,
+ struct lt_args_data *data, int last);
+
+/* stack handling */
+int lt_stack_process(struct lt_config_shared *cfg, struct lt_args_sym *asym,
+ La_regs *regs, struct lt_args_data *data);
+int lt_stack_process_ret(struct lt_config_shared *cfg, struct lt_args_sym *asym,
+ La_retval *regs, struct lt_args_data *data);
+
+#endif /* ARGS_H */
diff --git a/src/audit-init.c b/src/audit-init.c
index 0f60cc3..3c57ef9 100644
--- a/src/audit-init.c
+++ b/src/audit-init.c
@@ -155,9 +155,11 @@ int audit_init(int argc, char **argv, char **env)
if (-1 == read_config(getenv("LT_DIR")))
return -1;
+#ifdef CONFIG_ARCH_HAVE_ARGS
/* -Aa */
if (lt_sh(&cfg, args_enabled) && lt_args_init(cfg.sh))
return -1;
+#endif
/* -t */
if ((*lt_sh(&cfg, libs_to)) &&
diff --git a/src/audit.c b/src/audit.c
index 475dd47..fb65997 100644
--- a/src/audit.c
+++ b/src/audit.c
@@ -72,7 +72,7 @@ static int check_flow_below(const char *symname, int in)
static int sym_entry(const char *symname, char *lib_from, char *lib_to,
La_regs *regs)
{
- int argret;
+ int argret = -1;
char *argbuf = "", *argdbuf = "";
struct timeval tv;
@@ -84,8 +84,10 @@ static int sym_entry(const char *symname, char *lib_from, char *lib_to,
if (lt_sh(&cfg, timestamp) || lt_sh(&cfg, counts))
gettimeofday(&tv, NULL);
+#ifdef CONFIG_ARCH_HAVE_ARGS
argret = lt_sh(&cfg, args_enabled) ?
lt_args_sym_entry(cfg.sh, (char*) symname, regs, &argbuf, &argdbuf) : -1;
+#endif
if (lt_sh(&cfg, pipe)) {
char buf[FIFO_MSG_MAXLEN];
@@ -119,7 +121,7 @@ static int sym_entry(const char *symname, char *lib_from, char *lib_to,
static int sym_exit(const char *symname, char *lib_from, char *lib_to,
const La_regs *inregs, La_retval *outregs)
{
- int argret;
+ int argret = -1;
char *argbuf = "", *argdbuf = "";
struct timeval tv;
@@ -131,9 +133,11 @@ static int sym_exit(const char *symname, char *lib_from, char *lib_to,
if (lt_sh(&cfg, timestamp) || lt_sh(&cfg, counts))
gettimeofday(&tv, NULL);
+#ifdef CONFIG_ARCH_HAVE_ARGS
argret = lt_sh(&cfg, args_enabled) ?
lt_args_sym_exit(cfg.sh, (char*) symname,
(La_regs*) inregs, outregs, &argbuf, &argdbuf) : -1;
+#endif
if (lt_sh(&cfg, pipe)) {
char buf[FIFO_MSG_MAXLEN];
diff --git a/src/autoconf.h.in b/src/autoconf.h.in
index bf6ed9d..2df3e65 100644
--- a/src/autoconf.h.in
+++ b/src/autoconf.h.in
@@ -25,15 +25,12 @@
#undef CONFIG_LT_CONFIG
/* Version define. */
-#undef LT_VER
+#undef CONFIG_VERSION
-/* x86 define. */
-#undef LT_ARCH_X86
-
-/* x86_64 define. */
-#undef LT_ARCH_X86_64
+/* Argument display support. */
+#undef CONFIG_ARCH_HAVE_ARGS
/* liberty */
-#undef LT_LIBERTY
+#undef CONFIG_LIBERTY
#endif
diff --git a/src/autoconf.make.in b/src/autoconf.make.in
index fa0f479..09579a3 100644
--- a/src/autoconf.make.in
+++ b/src/autoconf.make.in
@@ -19,29 +19,30 @@
# @configure_input@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-datadir = @datadir@
-mandir = @mandir@
-datarootdir = @datarootdir@
-sysconfdir = @sysconfdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+bindir = @bindir@
+libdir = @libdir@
+datadir = @datadir@
+mandir = @mandir@
+datarootdir = @datarootdir@
+sysconfdir = @sysconfdir@
-RM = rm
-FIND = find
-CC = @CC@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-YACC = @YACC@
-CPPFLAGS = @CPPFLAGS@
-CFLAGS = @CFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
+RM = rm
+FIND = find
+CC = @CC@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+YACC = @YACC@
+CPPFLAGS = @CPPFLAGS@
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
-ASCIIDOC = @ASCIIDOC@
-XMLTO = @XMLTO@
+ASCIIDOC = @ASCIIDOC@
+XMLTO = @XMLTO@
-CONFIG_SYSDEP_DIR = @CONFIG_SYSDEP_DIR@
+CONFIG_SYSDEP_DIR = @CONFIG_SYSDEP_DIR@
-LT_VER = @LT_VER@
+CONFIG_VERSION = @CONFIG_VERSION@
+CONFIG_ARCH_HAVE_ARGS = @CONFIG_ARCH_HAVE_ARGS@
diff --git a/src/config.c b/src/config.c
index 52904f0..700a475 100644
--- a/src/config.c
+++ b/src/config.c
@@ -42,9 +42,13 @@ static void usage()
printf(" -p, --pipe use pipe to latrace process to send audit data\n");
printf(" latrace app is then the one displaying the output\n");
printf("\n");
+#ifndef CONFIG_ARCH_HAVE_ARGS
+ printf(" -[ADa] arguments display support not compiled in\n");
+#else
printf(" -A, --enable-args enable arguments output (definitions from /etc/latrace.conf)\n");
printf(" -D, --detail-args display struct arguments in more detail\n");
printf(" -a, --args file arguments definition file, implies \'-A\'\n");
+#endif
printf("\n");
printf(" -y, --framesize number framesize for storing the stack before pltexit (default 1000)\n");
printf(" -F, --not-follow-fork dont follow fork calls - childs\n");
@@ -73,7 +77,7 @@ static void usage()
static void version() NORETURN;
static void version()
{
- printf("latrace version " LT_VER "\n");
+ printf("latrace version " CONFIG_VERSION "\n");
exit(0);
}
@@ -221,7 +225,7 @@ int lt_config(struct lt_config_app *cfg, int argc, char **argv)
break;
case 'd':
- #ifndef LT_LIBERTY
+ #ifndef CONFIG_LIBERTY
printf("demangle support not compiled in," \
" liberty not found\n");
break;
@@ -257,16 +261,25 @@ int lt_config(struct lt_config_app *cfg, int argc, char **argv)
lt_sh(cfg, pipe) = 1;
break;
+ #ifndef CONFIG_ARCH_HAVE_ARGS
+ case 'a':
+ case 'A':
+ case 'D':
+ printf("Arguments display support not compiled in");
+ break;
+ #else
case 'a':
strcpy(lt_sh(cfg, args_def), optarg);
/* falling through */
case 'A':
+
lt_sh(cfg, args_enabled) = 1;
break;
case 'D':
lt_sh(cfg, args_detailed) = 1;
break;
+ #endif /* CONFIG_ARCH_HAVE_ARGS */
case 'o':
strcpy(lt_sh(cfg, output), optarg);
diff --git a/src/config.h b/src/config.h
index 5eec433..367b2d3 100644
--- a/src/config.h
+++ b/src/config.h
@@ -33,6 +33,10 @@
#include "list.h"
#include "autoconf.h"
+#ifdef CONFIG_ARCH_HAVE_ARGS
+#include "args.h"
+#endif
+
#ifdef __GNUC__
#define NORETURN __attribute__((__noreturn__))
#else
@@ -251,106 +255,6 @@ struct lt_thread {
struct lt_thread *next;
};
-enum {
- LT_ARGS_DTYPE_POD = 1,
- LT_ARGS_DTYPE_STRUCT,
-};
-
-enum {
- LT_ARGS_TYPEID_VOID = 1,
- LT_ARGS_TYPEID_SHORT,
- LT_ARGS_TYPEID_USHORT,
- LT_ARGS_TYPEID_INT,
- LT_ARGS_TYPEID_UINT,
- LT_ARGS_TYPEID_LONG,
- LT_ARGS_TYPEID_ULONG,
- LT_ARGS_TYPEID_CHAR,
- LT_ARGS_TYPEID_UCHAR,
- LT_ARGS_TYPEID_LLONG,
- LT_ARGS_TYPEID_ULLONG,
- LT_ARGS_TYPEID_DOUBLE,
- LT_ARGS_TYPEID_FLOAT,
-
- LT_ARGS_TYPEID_CUSTOM = 1000
-};
-
-struct lt_enum_elem {
- char *name;
- char *strval;
- long val;
- int undef;
- struct lt_list_head list;
-};
-
-struct lt_enum {
- char *name;
- int cnt;
- struct lt_enum_elem *elems;
-};
-
-struct lt_arg {
- /* argument type */
- int dtype;
-
- /* argument type properties */
- int type_id;
- u_int type_len;
- char *type_name;
-
- /* argument value properties */
- int pointer;
- char *name;
-
- /* for structures only */
- int mmbcnt;
-
- /* architecture dependent */
- void *arch;
-
- /* enum record */
- struct lt_enum *en;
-
- /* struct arguments head */
- struct lt_list_head *args_head;
- /* nested arguments list if present */
- struct lt_list_head args_list;
-};
-
-struct lt_args_sym {
- char *name;
-
- int argcnt;
-#define LT_ARGS_RET 0
- struct lt_arg **args;
-};
-
-struct lt_args_include {
- FILE *yyin;
- void *yybuf;
- char *file;
- int lineno;
-};
-
-/* used in lt_args_cb_struct for argument type */
-enum {
- LT_ARGS_STRUCT_ITSELF = 0,
- LT_ARGS_STRUCT_ARG
-};
-
-struct lt_args_data {
- int arglen;
-
- /* function arguments */
- char *args_buf;
- int args_len;
- int args_totlen;
-
- /* detailed structs */
- char *argsd_buf;
- int argsd_len;
- int argsd_totlen;
-};
-
/* ctl */
int main_ctl(int argc, char **argv);
@@ -380,32 +284,6 @@ struct lt_thread *lt_thread_add(struct lt_config_app *cfg, int fd, pid_t pid);
struct lt_thread *lt_thread_first(struct lt_config_app *cfg);
struct lt_thread *lt_thread_next(struct lt_config_app *cfg);
-/* arguments */
-int lt_args_init(struct lt_config_shared *cfg);
-int lt_args_sym_entry(struct lt_config_shared *cfg, char *sym, La_regs *regs,
- char **argbuf, char **argdbuf);
-int lt_args_sym_exit(struct lt_config_shared *cfg, char *sym, La_regs *inregs,
- La_retval *outregs, char **argbuf, char **argdbuf);
-int lt_args_add_enum(struct lt_config_shared *cfg, char *name,
- struct lt_list_head *h);
-struct lt_enum_elem* lt_args_get_enum(struct lt_config_shared *cfg, char *name, char *val);
-int lt_args_add_struct(struct lt_config_shared *cfg, char *type_name,
- struct lt_list_head *h);
-int lt_args_add_sym(struct lt_config_shared *cfg, struct lt_arg *sym,
- struct lt_list_head *h);
-int lt_args_add_typedef(struct lt_config_shared *cfg, char *base,
- char *new, int pointer);
-int lt_args_buf_open(struct lt_config_shared *cfg, char *file);
-int lt_args_buf_close(struct lt_config_shared *cfg);
-struct lt_arg* lt_args_getarg(struct lt_config_shared *cfg, char *type,
- char *name, int pointer, int create, char *enum_name);
-int lt_args_cb_arg(struct lt_config_shared *cfg, struct lt_arg *arg,
- void *pval, struct lt_args_data *data, int last,
- int dspname);
-int lt_args_cb_struct(struct lt_config_shared *cfg, int type,
- struct lt_arg *arg, void *pval,
- struct lt_args_data *data, int last);
-
/* output */
int lt_out_entry(struct lt_config_shared *cfg, struct timeval *tv,
pid_t tid, int indent_depth,
@@ -416,12 +294,6 @@ int lt_out_exit(struct lt_config_shared *cfg, struct timeval *tv,
const char *symname, char *lib_to,
char *argbuf, char *argdbuf);
-/* stack handling */
-int lt_stack_process(struct lt_config_shared *cfg, struct lt_args_sym *asym,
- La_regs *regs, struct lt_args_data *data);
-int lt_stack_process_ret(struct lt_config_shared *cfg, struct lt_args_sym *asym,
- La_retval *regs, struct lt_args_data *data);
-
/* la_objsearch */
int lt_objsearch_init(struct lt_config_audit *cfg, char **ptr, int cnt);
char* lt_objsearch(struct lt_config_audit *cfg, const char *name,
diff --git a/src/output.c b/src/output.c
index e504503..dd03382 100644
--- a/src/output.c
+++ b/src/output.c
@@ -56,7 +56,7 @@ do { \
/* libiberty external */
extern char* cplus_demangle(const char *mangled, int options);
-#ifdef LT_LIBERTY
+#ifdef CONFIG_LIBERTY
#define DEMANGLE(sym, d) \
do { \
char *dem; \
diff --git a/src/run.c b/src/run.c
index e2be17e..f4cc26d 100644
--- a/src/run.c
+++ b/src/run.c
@@ -289,7 +289,8 @@ int lt_run(struct lt_config_app *cfg)
if (0 == (child_pid = fork())) {
char str_audit[100];
- sprintf(str_audit, "%s/libltaudit.so.%s", CONFIG_LIBDIR, LT_VER);
+ sprintf(str_audit, "%s/libltaudit.so.%s", CONFIG_LIBDIR,
+ CONFIG_VERSION);
setenv("LD_AUDIT", str_audit, 1);
setenv("LT_DIR", str_dir, 1);