Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753362AbcJJQZg (ORCPT ); Mon, 10 Oct 2016 12:25:36 -0400 Received: from smtprelay.synopsys.com ([198.182.60.111]:34843 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752495AbcJJQZf (ORCPT ); Mon, 10 Oct 2016 12:25:35 -0400 Subject: Re: lib/atomic64_test.c:217:9: error: implicit declaration of function 'atomic64_dec_if_positive' To: kbuild test robot , Andrew Morton , Peter Zijlstra References: <201610092211.2jMb6gqJ%fengguang.wu@intel.com> CC: "kbuild-all@01.org" , "linux-kernel@vger.kernel.org" , Linux Memory Management List From: Vineet Gupta Message-ID: <9d2d3397-bce8-3e5d-bb72-f2ba41ada8fb@synopsys.com> Date: Mon, 10 Oct 2016 09:21:57 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <201610092211.2jMb6gqJ%fengguang.wu@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.10.161.28] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4658 Lines: 90 Hi Andrew / Peter, On 10/09/2016 07:37 AM, kbuild test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master > head: b66484cd74706fa8681d051840fe4b18a3da40ff > commit: 51a021244b9d579be6b4f8c15c493a76deb2a79e atomic64: no need for CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE > date: 2 days ago > config: frv-allmodconfig (attached as .config) > compiler: frv-linux-gcc (GCC) 6.2.0 > reproduce: > wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > git checkout 51a021244b9d579be6b4f8c15c493a76deb2a79e > # save the attached .config to linux build tree > make.cross ARCH=frv > > All errors (new ones prefixed by >>): > > In file included from include/linux/init.h:4:0, > from lib/atomic64_test.c:14: > lib/atomic64_test.c: In function 'test_atomic64': > lib/atomic64_test.c:208:9: error: implicit declaration of function 'atomic64_add_unless' [-Werror=implicit-function-declaration] > BUG_ON(atomic64_add_unless(&v, one, v0)); FWIW, this error was not introduced by my patch. It seems on FRV atomic64 self tests were never enabled and thus the breakage was not noticed. I took today's upstream linus tree, reverted my patch and still see this error. There are Should we make ATOMIC64_SELFTEST depend on !FRV - or do we prefer adding the missing primitives to seeming orphan arch ? I took a quick look at their atomic.h and it seems non trivial given my frv foo ! > ^ > include/linux/compiler.h:168:42: note: in definition of macro 'unlikely' > # define unlikely(x) __builtin_expect(!!(x), 0) > ^ > lib/atomic64_test.c:208:2: note: in expansion of macro 'BUG_ON' > BUG_ON(atomic64_add_unless(&v, one, v0)); > ^~~~~~ >>> lib/atomic64_test.c:217:9: error: implicit declaration of function 'atomic64_dec_if_positive' [-Werror=implicit-function-declaration] > BUG_ON(atomic64_dec_if_positive(&v) != (onestwos - 1)); > ^ > include/linux/compiler.h:168:42: note: in definition of macro 'unlikely' > # define unlikely(x) __builtin_expect(!!(x), 0) > ^ > lib/atomic64_test.c:217:2: note: in expansion of macro 'BUG_ON' > BUG_ON(atomic64_dec_if_positive(&v) != (onestwos - 1)); > ^~~~~~ > lib/atomic64_test.c:230:10: error: implicit declaration of function 'atomic64_inc_not_zero' [-Werror=implicit-function-declaration] > BUG_ON(!atomic64_inc_not_zero(&v)); > ^ > include/linux/compiler.h:168:42: note: in definition of macro 'unlikely' > # define unlikely(x) __builtin_expect(!!(x), 0) > ^ > lib/atomic64_test.c:230:2: note: in expansion of macro 'BUG_ON' > BUG_ON(!atomic64_inc_not_zero(&v)); > ^~~~~~ > cc1: some warnings being treated as errors > > vim +/atomic64_dec_if_positive +217 lib/atomic64_test.c > > 978e5a36 Boqun Feng 2015-11-04 202 DEC_RETURN_FAMILY_TEST(64, v0); > 86a89380 Luca Barbieri 2010-02-24 203 > 978e5a36 Boqun Feng 2015-11-04 204 XCHG_FAMILY_TEST(64, v0, v1); > 978e5a36 Boqun Feng 2015-11-04 205 CMPXCHG_FAMILY_TEST(64, v0, v1, v2); > 86a89380 Luca Barbieri 2010-02-24 206 > 86a89380 Luca Barbieri 2010-02-24 207 INIT(v0); > 9efbcd59 Luca Barbieri 2010-03-01 @208 BUG_ON(atomic64_add_unless(&v, one, v0)); > 86a89380 Luca Barbieri 2010-02-24 209 BUG_ON(v.counter != r); > 86a89380 Luca Barbieri 2010-02-24 210 > 86a89380 Luca Barbieri 2010-02-24 211 INIT(v0); > 9efbcd59 Luca Barbieri 2010-03-01 212 BUG_ON(!atomic64_add_unless(&v, one, v1)); > 86a89380 Luca Barbieri 2010-02-24 213 r += one; > 86a89380 Luca Barbieri 2010-02-24 214 BUG_ON(v.counter != r); > 86a89380 Luca Barbieri 2010-02-24 215 > 86a89380 Luca Barbieri 2010-02-24 216 INIT(onestwos); > 86a89380 Luca Barbieri 2010-02-24 @217 BUG_ON(atomic64_dec_if_positive(&v) != (onestwos - 1)); > 86a89380 Luca Barbieri 2010-02-24 218 r -= one; > 86a89380 Luca Barbieri 2010-02-24 219 BUG_ON(v.counter != r); > 86a89380 Luca Barbieri 2010-02-24 220 > > :::::: The code at line 217 was first introduced by commit > :::::: 86a8938078a8bb518c5376de493e348c7490d506 lib: Add self-test for atomic64_t > > :::::: TO: Luca Barbieri > :::::: CC: H. Peter Anvin > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation