perf tools: Convert to LIBELF_SUPPORT
For building perf without libelf, we can set NO_LIBELF=1 as a argument of make. It then defines NO_LIBELF_SUPPORT macro for C code to do the proper handling. However it usually used in a negative semantics - e.g. #ifndef - so we saw double negations which can be misleading. Convert it to a positive form to make it more readable. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1348824728-14025-4-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
e4898336a1
commit
29a0fc9b2b
6 changed files with 13 additions and 14 deletions
|
@ -503,8 +503,6 @@ ifneq ($(OUTPUT),)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef NO_LIBELF
|
ifdef NO_LIBELF
|
||||||
BASIC_CFLAGS += -DNO_LIBELF_SUPPORT
|
|
||||||
|
|
||||||
EXTLIBS := $(filter-out -lelf,$(EXTLIBS))
|
EXTLIBS := $(filter-out -lelf,$(EXTLIBS))
|
||||||
|
|
||||||
# Remove ELF/DWARF dependent codes
|
# Remove ELF/DWARF dependent codes
|
||||||
|
@ -519,9 +517,10 @@ BUILTIN_OBJS := $(filter-out $(OUTPUT)builtin-probe.o,$(BUILTIN_OBJS))
|
||||||
LIB_OBJS += $(OUTPUT)util/symbol-minimal.o
|
LIB_OBJS += $(OUTPUT)util/symbol-minimal.o
|
||||||
|
|
||||||
else # NO_LIBELF
|
else # NO_LIBELF
|
||||||
|
BASIC_CFLAGS += -DLIBELF_SUPPORT
|
||||||
|
|
||||||
ifneq ($(call try-cc,$(SOURCE_ELF_MMAP),$(FLAGS_COMMON)),y)
|
ifeq ($(call try-cc,$(SOURCE_ELF_MMAP),$(FLAGS_COMMON)),y)
|
||||||
BASIC_CFLAGS += -DLIBELF_NO_MMAP
|
BASIC_CFLAGS += -DLIBELF_MMAP
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef NO_DWARF
|
ifndef NO_DWARF
|
||||||
|
|
|
@ -194,7 +194,7 @@ static int perf_event__inject_buildid(struct perf_tool *tool,
|
||||||
* account this as unresolved.
|
* account this as unresolved.
|
||||||
*/
|
*/
|
||||||
} else {
|
} else {
|
||||||
#ifndef NO_LIBELF_SUPPORT
|
#ifdef LIBELF_SUPPORT
|
||||||
pr_warning("no symbols found in %s, maybe "
|
pr_warning("no symbols found in %s, maybe "
|
||||||
"install a debug package?\n",
|
"install a debug package?\n",
|
||||||
al.map->dso->long_name);
|
al.map->dso->long_name);
|
||||||
|
|
|
@ -48,7 +48,7 @@ static struct cmd_struct commands[] = {
|
||||||
{ "version", cmd_version, 0 },
|
{ "version", cmd_version, 0 },
|
||||||
{ "script", cmd_script, 0 },
|
{ "script", cmd_script, 0 },
|
||||||
{ "sched", cmd_sched, 0 },
|
{ "sched", cmd_sched, 0 },
|
||||||
#ifndef NO_LIBELF_SUPPORT
|
#ifdef LIBELF_SUPPORT
|
||||||
{ "probe", cmd_probe, 0 },
|
{ "probe", cmd_probe, 0 },
|
||||||
#endif
|
#endif
|
||||||
{ "kmem", cmd_kmem, 0 },
|
{ "kmem", cmd_kmem, 0 },
|
||||||
|
|
|
@ -22,7 +22,7 @@ do
|
||||||
}' "Documentation/perf-$cmd.txt"
|
}' "Documentation/perf-$cmd.txt"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "#ifndef NO_LIBELF_SUPPORT"
|
echo "#ifdef LIBELF_SUPPORT"
|
||||||
sed -n -e 's/^perf-\([^ ]*\)[ ].* full.*/\1/p' command-list.txt |
|
sed -n -e 's/^perf-\([^ ]*\)[ ].* full.*/\1/p' command-list.txt |
|
||||||
sort |
|
sort |
|
||||||
while read cmd
|
while read cmd
|
||||||
|
@ -35,5 +35,5 @@ do
|
||||||
p
|
p
|
||||||
}' "Documentation/perf-$cmd.txt"
|
}' "Documentation/perf-$cmd.txt"
|
||||||
done
|
done
|
||||||
echo "#endif /* NO_LIBELF_SUPPORT */"
|
echo "#endif /* LIBELF_SUPPORT */"
|
||||||
echo "};"
|
echo "};"
|
||||||
|
|
|
@ -162,7 +162,7 @@ int map__load(struct map *self, symbol_filter_t filter)
|
||||||
pr_warning(", continuing without symbols\n");
|
pr_warning(", continuing without symbols\n");
|
||||||
return -1;
|
return -1;
|
||||||
} else if (nr == 0) {
|
} else if (nr == 0) {
|
||||||
#ifndef NO_LIBELF_SUPPORT
|
#ifdef LIBELF_SUPPORT
|
||||||
const size_t len = strlen(name);
|
const size_t len = strlen(name);
|
||||||
const size_t real_len = len - sizeof(DSO__DELETED);
|
const size_t real_len = len - sizeof(DSO__DELETED);
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#include <byteswap.h>
|
#include <byteswap.h>
|
||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
|
|
||||||
#ifndef NO_LIBELF_SUPPORT
|
#ifdef LIBELF_SUPPORT
|
||||||
#include <libelf.h>
|
#include <libelf.h>
|
||||||
#include <gelf.h>
|
#include <gelf.h>
|
||||||
#include <elf.h>
|
#include <elf.h>
|
||||||
|
@ -46,10 +46,10 @@ char *strxfrchar(char *s, char from, char to);
|
||||||
* libelf 0.8.x and earlier do not support ELF_C_READ_MMAP;
|
* libelf 0.8.x and earlier do not support ELF_C_READ_MMAP;
|
||||||
* for newer versions we can use mmap to reduce memory usage:
|
* for newer versions we can use mmap to reduce memory usage:
|
||||||
*/
|
*/
|
||||||
#ifdef LIBELF_NO_MMAP
|
#ifdef LIBELF_MMAP
|
||||||
# define PERF_ELF_C_READ_MMAP ELF_C_READ
|
|
||||||
#else
|
|
||||||
# define PERF_ELF_C_READ_MMAP ELF_C_READ_MMAP
|
# define PERF_ELF_C_READ_MMAP ELF_C_READ_MMAP
|
||||||
|
#else
|
||||||
|
# define PERF_ELF_C_READ_MMAP ELF_C_READ
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef DMGL_PARAMS
|
#ifndef DMGL_PARAMS
|
||||||
|
@ -233,7 +233,7 @@ struct symsrc {
|
||||||
int fd;
|
int fd;
|
||||||
enum dso_binary_type type;
|
enum dso_binary_type type;
|
||||||
|
|
||||||
#ifndef NO_LIBELF_SUPPORT
|
#ifdef LIBELF_SUPPORT
|
||||||
Elf *elf;
|
Elf *elf;
|
||||||
GElf_Ehdr ehdr;
|
GElf_Ehdr ehdr;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue