mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: kbuild test robot <fengguang.wu@intel.com>
To: Will Deacon <will.deacon@arm.com>
Cc: kbuild-all@01.org, linux-kernel@vger.kernel.org,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Subject: [rcu:rcu/next 30/45] include/linux/compiler.h:343:2: error: implicit declaration of function 'smp_read_barrier_depends'
Date: Sun, 15 Oct 2017 07:29:36 +0800	[thread overview]
Message-ID: <201710150732.Bveddu9V%fengguang.wu@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 4136 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/next
head:   ea788e7da4886dff9782ad61d4c5e6ebadfa8260
commit: c3a030152f67ef977129c11e5b37a8e6071d4b6f [30/45] locking/barriers: Kill lockless_dereference
config: sparc-alldefconfig (attached as .config)
compiler: sparc-linux-gcc (GCC) 6.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout c3a030152f67ef977129c11e5b37a8e6071d4b6f
        # save the attached .config to linux build tree
        make.cross ARCH=sparc 

All errors (new ones prefixed by >>):

   In file included from include/uapi/linux/stddef.h:1:0,
                    from include/linux/stddef.h:4,
                    from include/uapi/linux/posix_types.h:4,
                    from include/uapi/linux/types.h:13,
                    from include/linux/types.h:5,
                    from include/linux/thread_info.h:10,
                    from arch/sparc/include/asm/current.h:14,
                    from include/linux/sched.h:11,
                    from arch/sparc/kernel/asm-offsets.c:13:
   include/linux/list.h: In function 'list_empty':
>> include/linux/compiler.h:343:2: error: implicit declaration of function 'smp_read_barrier_depends' [-Werror=implicit-function-declaration]
     smp_read_barrier_depends(); /* Enforce dependency ordering from x */ \
     ^
   include/linux/compiler.h:346:22: note: in expansion of macro '__READ_ONCE'
    #define READ_ONCE(x) __READ_ONCE(x, 1)
                         ^~~~~~~~~~~
   include/linux/list.h:202:9: note: in expansion of macro 'READ_ONCE'
     return READ_ONCE(head->next) == head;
            ^~~~~~~~~
   cc1: some warnings being treated as errors
   make[2]: *** [arch/sparc/kernel/asm-offsets.s] Error 1
   make[2]: Target '__build' not remade because of errors.
   make[1]: *** [prepare0] Error 2
   make[1]: Target 'prepare' not remade because of errors.
   make: *** [sub-make] Error 2

vim +/smp_read_barrier_depends +343 include/linux/compiler.h

   312	
   313	/*
   314	 * Prevent the compiler from merging or refetching reads or writes. The
   315	 * compiler is also forbidden from reordering successive instances of
   316	 * READ_ONCE, WRITE_ONCE and ACCESS_ONCE (see below), but only when the
   317	 * compiler is aware of some particular ordering.  One way to make the
   318	 * compiler aware of ordering is to put the two invocations of READ_ONCE,
   319	 * WRITE_ONCE or ACCESS_ONCE() in different C statements.
   320	 *
   321	 * In contrast to ACCESS_ONCE these two macros will also work on aggregate
   322	 * data types like structs or unions. If the size of the accessed data
   323	 * type exceeds the word size of the machine (e.g., 32 bits or 64 bits)
   324	 * READ_ONCE() and WRITE_ONCE() will fall back to memcpy(). There's at
   325	 * least two memcpy()s: one for the __builtin_memcpy() and then one for
   326	 * the macro doing the copy of variable - '__u' allocated on the stack.
   327	 *
   328	 * Their two major use cases are: (1) Mediating communication between
   329	 * process-level code and irq/NMI handlers, all running on the same CPU,
   330	 * and (2) Ensuring that the compiler does not  fold, spindle, or otherwise
   331	 * mutilate accesses that either do not require ordering or that interact
   332	 * with an explicit memory barrier or atomic instruction that provides the
   333	 * required ordering.
   334	 */
   335	
   336	#define __READ_ONCE(x, check)						\
   337	({									\
   338		union { typeof(x) __val; char __c[1]; } __u;			\
   339		if (check)							\
   340			__read_once_size(&(x), __u.__c, sizeof(x));		\
   341		else								\
   342			__read_once_size_nocheck(&(x), __u.__c, sizeof(x));	\
 > 343		smp_read_barrier_depends(); /* Enforce dependency ordering from x */ \
   344		__u.__val;							\
   345	})
   346	#define READ_ONCE(x) __READ_ONCE(x, 1)
   347	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 6768 bytes --]

             reply	other threads:[~2017-10-14 23:29 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-14 23:29 kbuild test robot [this message]
2017-10-17 16:14 ` Will Deacon
2017-10-17 16:44   ` Paul E. McKenney
2017-10-19 10:07     ` Will Deacon
2017-10-19 10:27       ` Mark Rutland
2017-10-19 17:46         ` Paul E. McKenney
2017-10-20 12:44           ` Mark Rutland
2017-10-20 16:50             ` Paul E. McKenney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201710150732.Bveddu9V%fengguang.wu@intel.com \
    --to=fengguang.wu@intel.com \
    --cc=kbuild-all@01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®