Skip to contentSkip to conversation

perf tools: Minor build fixes

PATCH In review David Carrillo-Cisneros 4 participants 17 messages Aug 27, 2017 – Aug 29, 2017 perf events

lore
Share & tools
lore
#0 lore raw

cover perf tools: Minor build fixes

Collection of minor fixes to compile with LLVM and non-standard tool names.

David Carrillo-Cisneros (6):
tools build tests: Don't hardcode gcc name
perf tools: Allow external definition of flex and bison binary names tools lib: Allow external definition of CC, AR and LD perf tools: Robustify detection of clang binary
perf tools: Remove BUG_ON char[] to bool implicit conversions perf tools: Pass full path of FEATURES_DUMP

 tools/build/tests/ex/Makefile          |  2 +-
 tools/include/linux/kernel.h           |  2 ++
 tools/lib/api/Makefile                 |  8 ++++----
 tools/lib/subcmd/Makefile              |  2 +-
 tools/perf/Makefile.config             |  4 ++--
 tools/perf/Makefile.perf               |  6 +++---
 tools/perf/builtin-lock.c              | 15 ++++++++++-----
 tools/perf/util/intel-pt-decoder/Build |  2 +-
 tools/scripts/Makefile.include         |  4 +++-
 9 files changed, 27 insertions(+), 18 deletions(-)
Signature · 1 line
2.14.1.342.g6490525c54-goog
#1 lore raw

PATCH 1/6 tools build tests: Don't hardcode gcc name

Use $(CC) instead of harcoded gcc binary name.

---
 tools/build/tests/ex/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
tools/build/tests/ex/Makefile +1 -1
index c50d5782ad5a..027d6c8a58a7 100644
@@ -8,7 +8,7 @@ ex:
 include $(srctree)/tools/build/Makefile.include
 
 ex: ex-in.o libex-in.o
-	gcc -o $@ $^
+	$(CC) -o $@ $^
 
 ex.%: fixdep FORCE
 	make -f $(srctree)/tools/build/Makefile.build dir=. $@
Signature · 1 line
2.14.1.342.g6490525c54-goog
#2 lore raw

[tip:perf/core] tools build tests: Don't hardcode gcc name

tools build tests: Don't hardcode gcc name
Commit-ID:  ba5d1a48aab56a2677113d071b5b1446877b9a1a
Gitweb:     http://git.kernel.org/tip/ba5d1a48aab56a2677113d071b5b1446877b9a1a
Author:     David Carrillo-Cisneros <[email protected]>
AuthorDate: Sun, 27 Aug 2017 00:54:37 -0700
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 28 Aug 2017 16:44:44 -0300

tools build tests: Don't hardcode gcc name

Use $(CC) instead of harcoded gcc binary name.

---
 tools/build/tests/ex/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
tools/build/tests/ex/Makefile +1 -1
index c50d578..027d6c8 100644
@@ -8,7 +8,7 @@ ex:
 include $(srctree)/tools/build/Makefile.include
 
 ex: ex-in.o libex-in.o
-	gcc -o $@ $^
+	$(CC) -o $@ $^
 
 ex.%: fixdep FORCE
 	make -f $(srctree)/tools/build/Makefile.build dir=. $@
#3 lore raw

PATCH 2/6 perf tools: Allow external definition of flex and bison binary names

In reply to David Carrillo-Cisneros

Allow user to define flex and bison binary names by passing FLEX and BISON variables.

---
 tools/perf/Makefile.perf | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
tools/perf/Makefile.perf +2 -2
index a700a079a218..58924eb0f40b 100644
@@ -164,8 +164,8 @@ LN      = ln -f
 MKDIR   = mkdir
 FIND    = find
 INSTALL = install
-FLEX    = flex
-BISON   = bison
+FLEX    ?= flex
+BISON   ?= bison
 STRIP   = strip
 AWK     = awk
 
Signature · 1 line
2.14.1.342.g6490525c54-goog
#4 lore raw

[tip:perf/core] perf tools: Allow external definition of flex and bison binary names

perf tools: Allow external definition of flex and bison binary names
Commit-ID:  39a59f1e3ea541035637432db39158a461f29146
Gitweb:     http://git.kernel.org/tip/39a59f1e3ea541035637432db39158a461f29146
Author:     David Carrillo-Cisneros <[email protected]>
AuthorDate: Sun, 27 Aug 2017 00:54:38 -0700
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 28 Aug 2017 16:44:45 -0300

perf tools: Allow external definition of flex and bison binary names

Allow user to define flex and bison binary names by passing FLEX and BISON variables.

---
 tools/perf/Makefile.perf | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
tools/perf/Makefile.perf +2 -2
index a700a07..58924eb 100644
@@ -164,8 +164,8 @@ LN      = ln -f
 MKDIR   = mkdir
 FIND    = find
 INSTALL = install
-FLEX    = flex
-BISON   = bison
+FLEX    ?= flex
+BISON   ?= bison
 STRIP   = strip
 AWK     = awk
 
#5 lore raw

PATCH 3/6 tools lib: Allow external definition of CC, AR and LD

In reply to David Carrillo-Cisneros

Use already defined values for CC, AR and LD when available.

---
 tools/lib/api/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
tools/lib/api/Makefile +3 -3
index eb6e0b36bfc1..2538675731c7 100644
@@ -8,9 +8,9 @@ srctree := $(patsubst %/,%,$(dir $(srctree)))
 #$(info Determined 'srctree' to be $(srctree))
 endif
 
-CC = $(CROSS_COMPILE)gcc
-AR = $(CROSS_COMPILE)ar
-LD = $(CROSS_COMPILE)ld
+CC ?= $(CROSS_COMPILE)gcc
+AR ?= $(CROSS_COMPILE)ar
+LD ?= $(CROSS_COMPILE)ld
 
 MAKEFLAGS += --no-print-directory
 
Signature · 1 line
2.14.1.342.g6490525c54-goog
#6 lore raw

[tip:perf/core] tools lib: Allow external definition of CC, AR and LD

tools lib: Allow external definition of CC, AR and LD
Commit-ID:  12024aacb0170779cd0b976b06d2e9b1767cf142
Gitweb:     http://git.kernel.org/tip/12024aacb0170779cd0b976b06d2e9b1767cf142
Author:     David Carrillo-Cisneros <[email protected]>
AuthorDate: Sun, 27 Aug 2017 00:54:39 -0700
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 28 Aug 2017 16:44:45 -0300

tools lib: Allow external definition of CC, AR and LD

Use already defined values for CC, AR and LD when available.

---
 tools/lib/api/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
tools/lib/api/Makefile +3 -3
index eb6e0b3..2538675 100644
@@ -8,9 +8,9 @@ srctree := $(patsubst %/,%,$(dir $(srctree)))
 #$(info Determined 'srctree' to be $(srctree))
 endif
 
-CC = $(CROSS_COMPILE)gcc
-AR = $(CROSS_COMPILE)ar
-LD = $(CROSS_COMPILE)ld
+CC ?= $(CROSS_COMPILE)gcc
+AR ?= $(CROSS_COMPILE)ar
+LD ?= $(CROSS_COMPILE)ld
 
 MAKEFLAGS += --no-print-directory
 
#7 lore raw

PATCH 4/6 perf tools: Robustify detection of clang binary

In reply to David Carrillo-Cisneros

Prior to this patch, make scripts tested for CLANG with ifeq ($(CC), clang), failing to detect CLANG binaries with different names. Fix it by testing for the existence of __clang__ macro in the list of compiler defined macros.

---
 tools/lib/api/Makefile                 | 2 +-
 tools/lib/subcmd/Makefile              | 2 +-
 tools/perf/Makefile.config             | 4 ++--
 tools/perf/util/intel-pt-decoder/Build | 2 +-
 tools/scripts/Makefile.include         | 4 +++-
 5 files changed, 8 insertions(+), 6 deletions(-)
tools/lib/api/Makefile +1 -1
index 2538675731c7..4563ba7ede6f 100644
@@ -19,7 +19,7 @@ LIBFILE = $(OUTPUT)libapi.a
 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
 CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
 
-ifeq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 0)
   CFLAGS += -O3
 else
   CFLAGS += -O6
tools/lib/subcmd/Makefile +1 -1
index 3d1c3b5b5150..7e9f03c97e4c 100644
@@ -21,7 +21,7 @@ LIBFILE = $(OUTPUT)libsubcmd.a
 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
 CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
 
-ifeq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 0)
   CFLAGS += -O3
 else
   CFLAGS += -O6
tools/perf/Makefile.config +2 -2
index 6a64c6bbd9a5..63f534a0902f 100644
@@ -148,7 +148,7 @@ ifndef DEBUG
 endif
 
 ifeq ($(DEBUG),0)
-ifeq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 0)
   CFLAGS += -O3
 else
   CFLAGS += -O6
@@ -184,7 +184,7 @@ ifdef PYTHON_CONFIG
   PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS))
   PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS)) -lutil
   PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
-  ifeq ($(CC), clang)
+  ifeq ($(CC_NO_CLANG), 1)
     PYTHON_EMBED_CCOPTS := $(filter-out -specs=%,$(PYTHON_EMBED_CCOPTS))
   endif
   FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
tools/perf/util/intel-pt-decoder/Build +1 -1
index 7aca5d6d7e1f..10e0814bb8d2 100644
@@ -25,6 +25,6 @@ $(OUTPUT)util/intel-pt-decoder/intel-pt-insn-decoder.o: util/intel-pt-decoder/in
 
 CFLAGS_intel-pt-insn-decoder.o += -I$(OUTPUT)util/intel-pt-decoder
 
-ifneq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 1)
   CFLAGS_intel-pt-insn-decoder.o += -Wno-override-init
 endif
tools/scripts/Makefile.include +3 -1
index ccad8ce925e4..1e8b6116ba3c 100644
@@ -39,7 +39,9 @@ EXTRA_WARNINGS += -Wundef
 EXTRA_WARNINGS += -Wwrite-strings
 EXTRA_WARNINGS += -Wformat
 
-ifneq ($(CC), clang)
+CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
+
+ifeq ($(CC_NO_CLANG), 1)
 EXTRA_WARNINGS += -Wstrict-aliasing=3
 endif
 
Signature · 1 line
2.14.1.342.g6490525c54-goog
#8 lore raw

[tip:perf/core] perf tools: Robustify detection of clang binary

perf tools: Robustify detection of clang binary
Commit-ID:  3866058ef15b6ae6f4ff48e088428b46bcc43fa1
Gitweb:     http://git.kernel.org/tip/3866058ef15b6ae6f4ff48e088428b46bcc43fa1
Author:     David Carrillo-Cisneros <[email protected]>
AuthorDate: Sun, 27 Aug 2017 00:54:40 -0700
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 28 Aug 2017 16:44:46 -0300

perf tools: Robustify detection of clang binary

Prior to this patch, make scripts tested for CLANG with ifeq ($(CC), clang), failing to detect CLANG binaries with different names. Fix it by testing for the existence of __clang__ macro in the list of compiler defined macros.

---
 tools/lib/api/Makefile                 | 2 +-
 tools/lib/subcmd/Makefile              | 2 +-
 tools/perf/Makefile.config             | 4 ++--
 tools/perf/util/intel-pt-decoder/Build | 2 +-
 tools/scripts/Makefile.include         | 4 +++-
 5 files changed, 8 insertions(+), 6 deletions(-)
tools/lib/api/Makefile +1 -1
index 2538675..4563ba7 100644
@@ -19,7 +19,7 @@ LIBFILE = $(OUTPUT)libapi.a
 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
 CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
 
-ifeq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 0)
   CFLAGS += -O3
 else
   CFLAGS += -O6
tools/lib/subcmd/Makefile +1 -1
index 3d1c3b5..7e9f03c 100644
@@ -21,7 +21,7 @@ LIBFILE = $(OUTPUT)libsubcmd.a
 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
 CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
 
-ifeq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 0)
   CFLAGS += -O3
 else
   CFLAGS += -O6
tools/perf/Makefile.config +2 -2
index 6a64c6b..63f534a 100644
@@ -148,7 +148,7 @@ ifndef DEBUG
 endif
 
 ifeq ($(DEBUG),0)
-ifeq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 0)
   CFLAGS += -O3
 else
   CFLAGS += -O6
@@ -184,7 +184,7 @@ ifdef PYTHON_CONFIG
   PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS))
   PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS)) -lutil
   PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
-  ifeq ($(CC), clang)
+  ifeq ($(CC_NO_CLANG), 1)
     PYTHON_EMBED_CCOPTS := $(filter-out -specs=%,$(PYTHON_EMBED_CCOPTS))
   endif
   FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
tools/perf/util/intel-pt-decoder/Build +1 -1
index 7aca5d6..10e0814 100644
@@ -25,6 +25,6 @@ $(OUTPUT)util/intel-pt-decoder/intel-pt-insn-decoder.o: util/intel-pt-decoder/in
 
 CFLAGS_intel-pt-insn-decoder.o += -I$(OUTPUT)util/intel-pt-decoder
 
-ifneq ($(CC), clang)
+ifeq ($(CC_NO_CLANG), 1)
   CFLAGS_intel-pt-insn-decoder.o += -Wno-override-init
 endif
tools/scripts/Makefile.include +3 -1
index ccad8ce..1e8b611 100644
@@ -39,7 +39,9 @@ EXTRA_WARNINGS += -Wundef
 EXTRA_WARNINGS += -Wwrite-strings
 EXTRA_WARNINGS += -Wformat
 
-ifneq ($(CC), clang)
+CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
+
+ifeq ($(CC_NO_CLANG), 1)
 EXTRA_WARNINGS += -Wstrict-aliasing=3
 endif
 
#9 lore raw

PATCH 5/6 perf tools: Remove BUG_ON char[] to bool implicit conversions

In reply to David Carrillo-Cisneros

When compiling with LLVM, errors like this are shown:

builtin-lock.c:46:10: error: implicit conversion turns string literal into bool: 'const char [39]' to 'bool'

Due to error message implicit conversion into bool. Fix it by defining a BUG macro without a boolean argument and use it instead.

---
 tools/include/linux/kernel.h |  2 ++
 tools/perf/builtin-lock.c    | 15 ++++++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)
tools/include/linux/kernel.h +2 -0
index 77d2e94ca5df..0951c96205c4 100644
@@ -70,6 +70,8 @@
 #endif
 #endif
 
+#define BUG() abort()
+
 #if __BYTE_ORDER == __BIG_ENDIAN
 #define cpu_to_le16 bswap_16
 #define cpu_to_le32 bswap_32
tools/perf/builtin-lock.c +10 -5
index ff98652484a7..7d1e42cccc89 100644
@@ -152,7 +152,8 @@ static void thread_stat_insert(struct thread_stat *new)
 		else if (new->tid > p->tid)
 			rb = &(*rb)->rb_right;
 		else
-			BUG_ON("inserting invalid thread_stat\n");
+			pr_err("inserting invalid thread_stat\n");
+			BUG();
 	}
 
 	rb_link_node(&new->rb, parent, rb);
@@ -457,7 +458,8 @@ static int report_lock_acquire_event(struct perf_evsel *evsel,
 		free(seq);
 		goto end;
 	default:
-		BUG_ON("Unknown state of lock sequence found!\n");
+		pr_err("Unknown state of lock sequence found!\n");
+		BUG();
 		break;
 	}
 
@@ -518,7 +520,8 @@ static int report_lock_acquired_event(struct perf_evsel *evsel,
 		free(seq);
 		goto end;
 	default:
-		BUG_ON("Unknown state of lock sequence found!\n");
+		pr_err("Unknown state of lock sequence found!\n");
+		BUG();
 		break;
 	}
 
@@ -573,7 +576,8 @@ static int report_lock_contended_event(struct perf_evsel *evsel,
 		free(seq);
 		goto end;
 	default:
-		BUG_ON("Unknown state of lock sequence found!\n");
+		pr_err("Unknown state of lock sequence found!\n");
+		BUG();
 		break;
 	}
 
@@ -632,7 +636,8 @@ static int report_lock_release_event(struct perf_evsel *evsel,
 		bad_hist[BROKEN_RELEASE]++;
 		goto free_seq;
 	default:
-		BUG_ON("Unknown state of lock sequence found!\n");
+		pr_err("Unknown state of lock sequence found!\n");
+		BUG();
 		break;
 	}
 
Signature · 1 line
2.14.1.342.g6490525c54-goog
#10 lore raw

Re: [PATCH 5/6] perf tools: Remove BUG_ON char[] to bool implicit conversions

Quoted 18 lines · David Carrillo-Cisneros

When compiling with LLVM, errors like this are shown:

builtin-lock.c:46:10: error: implicit conversion turns string literal into bool: 'const char [39]' to 'bool'

Due to error message implicit conversion into bool. Fix it by defining a BUG macro without a boolean argument and use it instead.

---
 tools/include/linux/kernel.h |  2 ++
 tools/perf/builtin-lock.c    | 15 ++++++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)
tools/include/linux/kernel.h +0 -0
index 77d2e94ca5df..0951c96205c4 100644

tools/include/linux/kernel.h line 73

Quoted 4 lines
tools/include/linux/kernel.h +1 -0
@@ -70,6 +70,8 @@
 #endif
 #endif
 
+#define BUG() abort()

we have some of those in tools/include/asm/bug.h

some might suit you, I think we wanted to omit BUG calls completely

jirka

#11 lore raw

PATCH 1/1 perf tools: Remove BUG_ON char[] to bool implicit conversions

When compiling with LLVM, errors like this are shown:

builtin-lock.c:46:10: error: implicit conversion turns string literal into bool: 'const char [39]' to 'bool'

due to error message implicit conversion into bool. Fix it printing the error message and returning an error when possible.

---
 tools/perf/builtin-lock.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
tools/perf/builtin-lock.c +11 -11
index ff98652484a7..55d3997ce194 100644
@@ -3,6 +3,7 @@
 #include "builtin.h"
 #include "perf.h"
 
+#include "asm/bug.h"
 #include "util/evlist.h"
 #include "util/evsel.h"
 #include "util/util.h"
@@ -147,12 +148,11 @@ static void thread_stat_insert(struct thread_stat *new)
 		p = container_of(*rb, struct thread_stat, rb);
 		parent = *rb;
 
+		WARN(new->tid == p->tid, "inserting invalid thread_stat\n");
 		if (new->tid < p->tid)
 			rb = &(*rb)->rb_left;
-		else if (new->tid > p->tid)
-			rb = &(*rb)->rb_right;
 		else
-			BUG_ON("inserting invalid thread_stat\n");
+			rb = &(*rb)->rb_right;
 	}
 
 	rb_link_node(&new->rb, parent, rb);
@@ -457,8 +457,8 @@ static int report_lock_acquire_event(struct perf_evsel *evsel,
 		free(seq);
 		goto end;
 	default:
-		BUG_ON("Unknown state of lock sequence found!\n");
-		break;
+		pr_err("Unknown state of lock sequence found!\n");
+		return -1;
 	}
 
 	ls->nr_acquire++;
@@ -518,8 +518,8 @@ static int report_lock_acquired_event(struct perf_evsel *evsel,
 		free(seq);
 		goto end;
 	default:
-		BUG_ON("Unknown state of lock sequence found!\n");
-		break;
+		pr_err("Unknown state of lock sequence found!\n");
+		return -1;
 	}
 
 	seq->state = SEQ_STATE_ACQUIRED;
@@ -573,8 +573,8 @@ static int report_lock_contended_event(struct perf_evsel *evsel,
 		free(seq);
 		goto end;
 	default:
-		BUG_ON("Unknown state of lock sequence found!\n");
-		break;
+		pr_err("Unknown state of lock sequence found!\n");
+		return -1;
 	}
 
 	seq->state = SEQ_STATE_CONTENDED;
@@ -632,8 +632,8 @@ static int report_lock_release_event(struct perf_evsel *evsel,
 		bad_hist[BROKEN_RELEASE]++;
 		goto free_seq;
 	default:
-		BUG_ON("Unknown state of lock sequence found!\n");
-		break;
+		pr_err("Unknown state of lock sequence found!\n");
+		return -1;
 	}
 
 	ls->nr_release++;
Signature · 1 line
2.14.1.342.g6490525c54-goog
#12 lore raw

PATCH 6/6 perf tools: Pass full path of FEATURES_DUMP

In reply to David Carrillo-Cisneros

When building with an external FEATURES_DUMP, bpf complains that features dump file is not found. Fix it by passing full file path.

---
 tools/perf/Makefile.perf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/Makefile.perf +1 -1
index 58924eb0f40b..a5bf3100f812 100644
@@ -240,7 +240,7 @@ endif
 ifeq ($(FEATURES_DUMP),)
 FEATURE_DUMP_EXPORT := $(realpath $(OUTPUT)FEATURE-DUMP)
 else
-FEATURE_DUMP_EXPORT := $(FEATURES_DUMP)
+FEATURE_DUMP_EXPORT := $(realpath $(FEATURES_DUMP))
 endif
 
 export prefix bindir sharedir sysconfdir DESTDIR
Signature · 1 line
2.14.1.342.g6490525c54-goog
#13 lore raw

[tip:perf/core] perf tools: Pass full path of FEATURES_DUMP

perf tools: Pass full path of FEATURES_DUMP
Commit-ID:  70ff7c6caa2f2cee4a7621f5cb3b73b0a38327f1
Gitweb:     http://git.kernel.org/tip/70ff7c6caa2f2cee4a7621f5cb3b73b0a38327f1
Author:     David Carrillo-Cisneros <[email protected]>
AuthorDate: Sun, 27 Aug 2017 00:54:42 -0700
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 28 Aug 2017 16:44:46 -0300

perf tools: Pass full path of FEATURES_DUMP

When building with an external FEATURES_DUMP, bpf complains that features dump file is not found. Fix it by passing full file path.

---
 tools/perf/Makefile.perf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/Makefile.perf +1 -1
index 58924eb..a5bf310 100644
@@ -240,7 +240,7 @@ endif
 ifeq ($(FEATURES_DUMP),)
 FEATURE_DUMP_EXPORT := $(realpath $(OUTPUT)FEATURE-DUMP)
 else
-FEATURE_DUMP_EXPORT := $(FEATURES_DUMP)
+FEATURE_DUMP_EXPORT := $(realpath $(FEATURES_DUMP))
 endif
 
 export prefix bindir sharedir sysconfdir DESTDIR
Acked-by on the v1 series
#14 lore raw
In reply to David Carrillo-Cisneros
Quoted 10 lines · David Carrillo-Cisneros

Collection of minor fixes to compile with LLVM and non-standard tool names.

David Carrillo-Cisneros (6):
tools build tests: Don't hardcode gcc name
perf tools: Allow external definition of flex and bison binary names tools lib: Allow external definition of CC, AR and LD perf tools: Robustify detection of clang binary
perf tools: Remove BUG_ON char[] to bool implicit conversions perf tools: Pass full path of FEATURES_DUMP

apart from comment for 5/6 I'm ok with this

thanks,
jirka

#15 lore raw

Em Mon, Aug 28, 2017 at 11:34:21AM +0200, Jiri Olsa escreveu:

Quoted 12 lines · David Carrillo-Cisneros
Quoted 10 lines

Collection of minor fixes to compile with LLVM and non-standard tool names.

David Carrillo-Cisneros (6):
tools build tests: Don't hardcode gcc name
perf tools: Allow external definition of flex and bison binary names tools lib: Allow external definition of CC, AR and LD perf tools: Robustify detection of clang binary
perf tools: Remove BUG_ON char[] to bool implicit conversions perf tools: Pass full path of FEATURES_DUMP

Quoted 3 lines

apart from comment for 5/6 I'm ok with this

Thanks, applied all that Jiri acked, agree with him that BUG should be avoided, and also that we should use existing facilities when available, and when there aren't, try to replicate as best as we can similar facilities existing in the kernel source code.

- Arnaldo

#16 lore raw
Quoted 13 lines · Arnaldo Carvalho de Melo

Em Mon, Aug 28, 2017 at 11:34:21AM +0200, Jiri Olsa escreveu:

Quoted 12 lines · David Carrillo-Cisneros
Quoted 10 lines

Collection of minor fixes to compile with LLVM and non-standard tool names.

David Carrillo-Cisneros (6):
tools build tests: Don't hardcode gcc name
perf tools: Allow external definition of flex and bison binary names tools lib: Allow external definition of CC, AR and LD perf tools: Robustify detection of clang binary
perf tools: Remove BUG_ON char[] to bool implicit conversions perf tools: Pass full path of FEATURES_DUMP

Quoted 8 lines
Quoted 3 lines

apart from comment for 5/6 I'm ok with this

Thanks, applied all that Jiri acked, agree with him that BUG should be avoided, and also that we should use existing facilities when available, and when there aren't, try to replicate as best as we can similar facilities existing in the kernel source code.

Thank you for applying them. I sent a new version of the one commented by Jiri.

David

Quoted 2 lines

- Arnaldo