[tip:perf/core] perf symbols: Define STT_GNU_IFUNC for glibc 2.9 and older.

From: tip-bot for Vinson Lee
Date: Wed Feb 18 2015 - 13:30:11 EST

Commit-ID: 4e31050f482c02c822b150d71cf1ea5be7c9d6e4
Gitweb: http://git.kernel.org/tip/4e31050f482c02c822b150d71cf1ea5be7c9d6e4
Author: Vinson Lee <vlee@xxxxxxxxxxx>
AuthorDate: Mon, 9 Feb 2015 16:29:37 -0800
Committer: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
CommitDate: Wed, 11 Feb 2015 12:37:32 -0300

perf symbols: Define STT_GNU_IFUNC for glibc 2.9 and older.

The token STT_GNU_IFUNC is not available with glibc 2.9 and older.
Define this token if it is not already defined.

This patch fixes this build errors with older versions of glibc.

CC util/symbol-elf.o
util/symbol-elf.c: In function âelf_sym__is_functionâ:
util/symbol-elf.c:75: error: âSTT_GNU_IFUNCâ undeclared (first use in this function)
util/symbol-elf.c:75: error: (Each undeclared identifier is reported only once
util/symbol-elf.c:75: error: for each function it appears in.)
make: *** [util/symbol-elf.o] Error 1

Signed-off-by: Vinson Lee <vlee@xxxxxxxxxxx>
Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Anton Blanchard <anton@xxxxxxxxx>
Cc: Avi Kivity <avi@xxxxxxxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Waiman Long <Waiman.Long@xxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # 3.17+
Link: http://lkml.kernel.org/r/1423528286-13630-1-git-send-email-vlee@xxxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
tools/perf/util/symbol-elf.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index 225eb73..b02731a 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -69,6 +69,10 @@ static inline uint8_t elf_sym__type(const GElf_Sym *sym)
return GELF_ST_TYPE(sym->st_info);

+#ifndef STT_GNU_IFUNC
+#define STT_GNU_IFUNC 10
static inline int elf_sym__is_function(const GElf_Sym *sym)
return (elf_sym__type(sym) == STT_FUNC ||
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/