Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753428AbbG0SYW (ORCPT ); Mon, 27 Jul 2015 14:24:22 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44448 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751342AbbG0SYU (ORCPT ); Mon, 27 Jul 2015 14:24:20 -0400 Date: Mon, 27 Jul 2015 20:24:17 +0200 From: Jiri Olsa To: Pawel Moll Cc: Arnaldo Carvalho de Melo , Peter Zijlstra , Ingo Molnar , Namhyung Kim , Adrian Hunter , linux-kernel@vger.kernel.org Subject: [PATCH] perf tests: Adding build test for having ending slash in double slash Message-ID: <20150727182417.GD20509@krava.brq.redhat.com> References: <1438015593-27983-1-git-send-email-pawel.moll@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1438015593-27983-1-git-send-email-pawel.moll@arm.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4787 Lines: 133 On Mon, Jul 27, 2015 at 05:46:33PM +0100, Pawel Moll wrote: > When building with a prefix ending with a slash, for example: > > $ make prefix=/usr/local/ > > one of the perf tests fail to compile due to BUILD_STR macro mishandling > bindir_SQ string containing with two slashes: hum, I can find this.. is it known issue with stringification? > > -DBINDIR="BUILD_STR(/usr/local//bin)" > > with the following error: > > CC tests/attr.o > tests/attr.c: In function ‘test__attr’: > tests/attr.c:168:50: error: expected ‘)’ before ‘;’ token > snprintf(path_perf, PATH_MAX, "%s/perf", BINDIR); > ^ > tests/attr.c:176:1: error: expected ‘;’ before ‘}’ token > } > ^ > tests/attr.c:176:1: error: control reaches end of non-void function [-Werror=return-type] > } > ^ > cc1: all warnings being treated as errors > > This patch works around the problem by "cleaning" the bindir string > using make's realpath function. I'm getting install error with your patch: [jolsa@krava perf]$ rm -rf /tmp/krava/ && make install prefix=/tmp/krava SNIP LINK perf INSTALL binaries INSTALL tests install: cannot create directory ‘’: No such file or directory install: target ‘’ is not a directory: No such file or directory ln: failed to access ‘/perf’: No such file or directory Makefile.perf:492: recipe for target 'install-tools' failed make[1]: *** [install-tools] Error 1 make[1]: *** Waiting for unfinished jobs.... Makefile:87: recipe for target 'install' failed make: *** [install] Error 2 somethings wrong with install targets dealing with bindir_SQ anyway, attaching test case for your issue thanks, jirka --- Pawel Moll reported build issue for having extra slash (/) at the end of the prefix variable. $ make prefix=/usr/local/ CC tests/attr.o tests/attr.c: In function ‘test__attr’: tests/attr.c:168:50: error: expected ‘)’ before ‘;’ token snprintf(path_perf, PATH_MAX, "%s/perf", BINDIR); ^ tests/attr.c:176:1: error: expected ‘;’ before ‘}’ token } ^ tests/attr.c:176:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors Adding automated test case for this. Reported-by: Pawel Moll Link: http://lkml.kernel.org/n/tip-uk97po64cp149se3ll28gqel@git.kernel.org Signed-off-by: Jiri Olsa --- tools/perf/tests/make | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tools/perf/tests/make b/tools/perf/tests/make index 729112f4cfaa..ba31c4bd441d 100644 --- a/tools/perf/tests/make +++ b/tools/perf/tests/make @@ -58,7 +58,8 @@ make_install_man := install-man make_install_html := install-html make_install_info := install-info make_install_pdf := install-pdf -make_install_prefix := install prefix=/tmp/krava +make_install_prefix := install prefix=/tmp/krava +make_install_prefix_slash := install prefix=/tmp/krava/ make_static := LDFLAGS=-static # all the NO_* variable combined @@ -101,6 +102,7 @@ run += make_util_pmu_bison_o run += make_install run += make_install_bin run += make_install_prefix +run += make_install_prefix_slash # FIXME 'install-*' commented out till they're fixed # run += make_install_doc # run += make_install_man @@ -175,11 +177,14 @@ test_make_install_O := $(call test_dest_files,$(installed_files_all)) test_make_install_bin := $(call test_dest_files,$(installed_files_bin)) test_make_install_bin_O := $(call test_dest_files,$(installed_files_bin)) -# We prefix all installed files for make_install_prefix +# We prefix all installed files for make_install_prefix(_slash) # with '/tmp/krava' to match installed/prefix-ed files. installed_files_all_prefix := $(addprefix /tmp/krava/,$(installed_files_all)) -test_make_install_prefix := $(call test_dest_files,$(installed_files_all_prefix)) -test_make_install_prefix_O := $(call test_dest_files,$(installed_files_all_prefix)) +test_make_install_prefix := $(call test_dest_files,$(installed_files_all_prefix)) +test_make_install_prefix_O := $(call test_dest_files,$(installed_files_all_prefix)) + +test_make_install_prefix_slash := $(test_make_install_prefix) +test_make_install_prefix_slash_O := $(test_make_install_prefix_O) # FIXME nothing gets installed test_make_install_man := test -f $$TMP_DEST/share/man/man1/perf.1 -- 2.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/