From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x226Vdf5aSJa+chGM/CLnqjT7zSRrsrDYeDfJYAbVtWnow0lTkmfotvgRiFRH87fyfVfDPGx4 ARC-Seal: i=1; a=rsa-sha256; t=1516721578; cv=none; d=google.com; s=arc-20160816; b=Lr0iuS/1lNzhoarEHz+AoDww7/lC13sc6tXHjcmujLXoILMcQr7WGDyOns+lx5k0sG TOxjxpUwGK1xt08SJHIfgKW34Lf5ZWr2fLIvM26baNPwsoCptHtVmngPlXkY86R2SRXe EOnjGsTGJ6GnnOiPVwSk8G99I6or1HlCaZmi5Qm3iAap+/y3avhhVffYmFqJQIydXayf y4kWMJWNqTGOJilGglaNRNDMEGcoydTHf5fD+1K/6h7vc854pJ6AzGXD+SALQL5ocdNQ Q3W7Wrev+7gUPNPm3MmCeFxhC0d2LKfBnS3etT8f7EYQjbBhoksLmZ+kdx8c4bI+vQIL 8+/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-disposition:mime-version:references:subject:cc:to:from:date :user-agent:message-id:dkim-signature:arc-authentication-results; bh=Lloa0fS5l8cMF+bIRJB4LQJ7XwWLIDwScZRuV1eKEiY=; b=HwJyEBBxM7LsVkpe53BQKNsS1I8lDw2GNXpyWFfKTRkNpczAAA0UX+oAZZbuks+D+b KMzmvo8Lr3wyyLTEvB+GiN8sgqnU2+InBrFjaJFWuR5PSV+VBeLawGjUb2Rroyi1FYO9 Vbims0b5LE83LnJGV3YxWysVdExIcnjFGvbxQ3bXk2UpINpH5WJ1Z/uzvp/uHQlUuaNH ttH2YAL63n+Ae68ovrW8IuVqNBFbE/cghJtGIjzw+DIxZnNZpqDJkkUPgQ9c9zvq2sqI /DTNDgIWRnmKONZYtitUmFvS5PyD/Zy0KJVB/RI6JkAcnlD3qLxDadQmwCa47t3KjWhD 37WA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20170209 header.b=aPeYoZIz; spf=pass (google.com: best guess record for domain of peterz@infradead.org designates 65.50.211.133 as permitted sender) smtp.mailfrom=peterz@infradead.org Authentication-Results: mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20170209 header.b=aPeYoZIz; spf=pass (google.com: best guess record for domain of peterz@infradead.org designates 65.50.211.133 as permitted sender) smtp.mailfrom=peterz@infradead.org Message-Id: <20180123152639.228550217@infradead.org> User-Agent: quilt/0.63-1 Date: Tue, 23 Jan 2018 16:26:00 +0100 From: Peter Zijlstra To: David Woodhouse , Thomas Gleixner , Josh Poimboeuf Cc: linux-kernel@vger.kernel.org, Dave Hansen , Ashok Raj , Tim Chen , Andy Lutomirski , Linus Torvalds , Greg KH , Andrea Arcangeli , Andi Kleen , Arjan Van De Ven , Dan Williams , Paolo Bonzini , Jun Nakajima , Asit Mallick , Jason Baron , Peter Zijlstra Subject: [PATCH 21/24] objtool: Skip static assert when KCOV/KASAN References: <20180123152539.374360046@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline; filename=peterz-objtool-no-assert.patch X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1590397846040585700?= X-GMAIL-MSGID: =?utf-8?q?1590397846040585700?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: They make an absolutely horrid mess of things. Signed-off-by: Peter Zijlstra (Intel) --- scripts/Makefile.build | 9 +++++++++ tools/objtool/builtin-check.c | 3 ++- tools/objtool/builtin.h | 2 +- tools/objtool/check.c | 3 +++ 4 files changed, 15 insertions(+), 2 deletions(-) --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -272,6 +272,15 @@ endif ifdef CONFIG_RETPOLINE objtool_args += --retpoline endif +ifdef CONFIG_KCOV + objtool_no_assert := 1 +endif +ifdef CONFIG_KASAN + objtool_no_assert := 1 +endif +ifdef objtool_no_assert + objtool_args += --no-static-assert +endif ifdef CONFIG_MODVERSIONS --- a/tools/objtool/builtin-check.c +++ b/tools/objtool/builtin-check.c @@ -29,7 +29,7 @@ #include "builtin.h" #include "check.h" -bool no_fp, no_unreachable, retpoline; +bool no_fp, no_unreachable, retpoline, no_assert; static const char * const check_usage[] = { "objtool check [] file.o", @@ -40,6 +40,7 @@ const struct option check_options[] = { OPT_BOOLEAN('f', "no-fp", &no_fp, "Skip frame pointer validation"), OPT_BOOLEAN('u', "no-unreachable", &no_unreachable, "Skip 'unreachable instruction' warnings"), OPT_BOOLEAN('r', "retpoline", &retpoline, "Validate retpoline assumptions"), + OPT_BOOLEAN('s', "no-static-assert", &no_assert, "Skip static branch validation"), OPT_END(), }; --- a/tools/objtool/builtin.h +++ b/tools/objtool/builtin.h @@ -20,7 +20,7 @@ #include extern const struct option check_options[]; -extern bool no_fp, no_unreachable, retpoline; +extern bool no_fp, no_unreachable, retpoline, no_assert; extern int cmd_check(int argc, const char **argv); extern int cmd_orc(int argc, const char **argv); --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -1122,6 +1122,9 @@ static int assert_static_jumps(struct ob struct rela *rela; int i; + if (no_assert) + return 0; + sec = find_section_by_name(file->elf, ".discard.jump_assert"); if (!sec) return 0;