title: how to use mkfifo using Android's NDK
body: <p>Recently I upgraded the NDK and now my app crashes with missing symbol <code>mkfifo</code>:</p>
  
  <pre><code>E/dalvikvm(2031): dlopen("/data/app-lib/...mylib.so") failed: Cannot load library: soinfo_relocate(linker.cpp:975): cannot locate symbol "mkfifo" referenced by "mylib.so"...
  </code></pre>
  
  <p>The older platforms mkfifo was defined inline in <code>sys/stat.h</code></p>
  
  <pre><code>static __inline__ int mkfifo(const char *__p, mode_t __m) {
      return mknod(__p, (__m &amp; ~S_IFMT) | S_IFIFO, (dev_t)0);
  }
  </code></pre>
  
  <p>But in platform version 21 it was changed to just an extern decleration:</p>
  
  <pre><code>extern int mkfifo(const char*, mode_t);
  </code></pre>
  
  <p>So that explains the missing symbol exception... my question is how do I fix it?</p>