title: Trouble calling syscall by name
body: <p>I am in process of adding system calls to linux Kernel 3.19. Tried out the following for adding a syscall 'add' for x86 arch in Ubuntu 14.04 LTS. 
  src=3.19 source</p>
  
  <ol>
  <li><p>Added entry to src/arch/x86/syscalls/syscall_64.tbl.</p>
  
  <pre><code>323 common add sys_add
  </code></pre></li>
  <li><p>Added syscall prototype to src/include/syscalls.h.</p>
  
  <pre><code>asmlinakge sys_add(int i,int j);
  </code></pre></li>
  <li><p>Wrote <strong>add.c</strong> in <strong>fs</strong> directory, added <strong>add.o</strong> in <strong>fs/Makefile</strong> .</p></li>
  <li><p>In file <strong>src/include/uapi/asm-generic/unistd.h</strong></p></li>
  </ol>
  
  <p>Added lines</p>
  
  <pre><code>    #define __NR_add 323
  
    __SYSCALL(__NR_add, sys_add);
  </code></pre>
  
  <ol start="5">
  <li><p>Compiled and built the kernel. It was success. The output of <strong>uname -r</strong> gives 3.19. </p></li>
  <li><p>Created a program to test new syscall.</p>
  
  <p>6.1 Used the function <strong>syscall(323,10,15)</strong>. It was success as the sum of values(25) was printed.</p>
  
  <p>6.2 When trying to call syscall by name, it gives </p>
  
  <pre><code>  /tmp/ccpxRp8C.o: In function `main':
     testadd1.c:(.text+0x18): undefined reference to `add'
     collect2: error: ld returned 1 exit status
  </code></pre></li>
  </ol>
  
  <p>What am I missing??  </p>