title: How do i compile this code to work with LD_PRELOAD on linux?
body: <p>How do I compile the following code for make it work with LD_PRELOAD?. I managed to compile it w/o errors with '<code>gcc -m32 -shared code.c</code>' but when I open the program that I'm trying to 'inject' the code into, it says this: '<code>symbol lookup error: ./fps.so: undefined symbol: clock_gettime</code>'</p>
  
  <pre><code>#include&lt;unistd.h&gt;
  #include&lt;time.h&gt;
  #define BUSY_WAIT       3000
  /* We use clock_gettime because it's better than gettimeofday */
  
  unsigned long long int fetch_clock()
  {
          struct timespec ts;
          clock_gettime(CLOCK_REALTIME, &amp;ts);
          return (unsigned long long int)ts.tv_nsec + 1000000*ts.tv_sec;
  }
  
  int high_pres_usleep_untill(unsigned long long int end)
  {
          unsigned long long int busywait, start;
          int sleep, delay;
  
          start = fetch_clock();
          delay = end - start;
  
          sleep = (delay / BUSY_WAIT) - 1;
          if(sleep &gt; 0)
                  if(usleep(sleep*BUSY_WAIT))
                          return -1;
          while(fetch_clock() &lt; end)
                  ;
  
          return 0;
  }
  </code></pre>