title: Warning building a kernel module that uses exported symbols
body: <p>I have two kernel modules (say modA and modB). modA exports a symbol with <code>EXPORT_SYMBOL(symA)</code> and modB uses it. I have the header <code>modA.h</code> for modA:</p>
  
  <pre><code>...
  extern void symA(int param);
  ...
  </code></pre>
  
  <p>and in <code>modB.c</code>:</p>
  
  <pre><code>#include "modA.h"
  ...
  static int __init modB_init(void)
  {
      symA(10);
  }
  ...
  </code></pre>
  
  <p>If i <code>insmod</code> modB all works fine, my modB is correctly linked in the kernel and the function <code>symA</code> is correctly called. However when i build modB the compiler raises a warning: <code>symA is undefined</code>. An LKM is an ELF relocatable so why the compiler raises this warning? How can be this removed?</p>