Skip to content

Commit ef0775f

Browse files
committed
build: Check and set perf --log-fd option
Linux perf tool version 3.2 introduced a new option "--log-fd" defaults to 0, which leads to error "Failed opening logfd: Illegal argument" when executing perf tests. Set logfd to stderr to let perf test work. Issue #1538
1 parent 2936788 commit ef0775f

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

configure

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,16 @@ then
363363
err "either clang or gcc is required"
364364
fi
365365

366+
if [ ! -z "$CFG_PERF" ]
367+
then
368+
HAVE_PERF_LOGFD=`$CFG_PERF stat --log-fd 2>&1 | grep 'unknown option'`
369+
if [ -z "$HAVE_PERF_LOGFD" ];
370+
then
371+
CFG_PERF_WITH_LOGFD=1
372+
putvar CFG_PERF_WITH_LOGFD
373+
fi
374+
fi
375+
366376
step_msg "making directories"
367377

368378
for i in \

mk/platform.mk

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,11 @@ ifneq ($(findstring linux,$(CFG_OSTYPE)),)
5858
CFG_LDENV := LD_LIBRARY_PATH
5959
CFG_DEF_SUFFIX := .linux.def
6060
ifdef CFG_PERF
61-
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3
61+
ifneq ($(CFG_PERF_WITH_LOGFD),)
62+
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3 --log-fd 2
63+
else
64+
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3
65+
endif
6266
else
6367
ifdef CFG_VALGRIND
6468
CFG_PERF_TOOL :=\

0 commit comments

Comments
 (0)