title: Why do I see symbol linking error messages when the symbols are present?
body: <p>I have two object files, one with a couple of symbols defined and one in which those symbols are undefined:</p>
  
  <pre><code>nm ./src/freertos/freertos.o |grep pvPortMalloc
  000000000000d045 T pvPortMalloc
  </code></pre>
  
  <p>...and...</p>
  
  <pre><code>nm ./src/clib/new_delete.o
                   U _GLOBAL_OFFSET_TABLE_
                   U _Z12pvPortMalloci
                   U _Z9vPortFreePv
  0000000000000019 T _ZdlPv
  0000000000000000 T _Znwm
  </code></pre>
  
  <p>When I attempt to link them together, I see this:</p>
  
  <pre><code>ld ./src/clib/new_delete.o ./src/freertos/freertos.o 
  ld: warning: cannot find entry symbol _start; defaulting to 0000000000401000
  ld: ./src/clib/new_delete.o: in function `operator new(unsigned long)':
  new_delete.cc:(.text+0x13): undefined reference to `pvPortMalloc(int)'
  ld: ./src/clib/new_delete.o: in function `operator delete(void*)':
  new_delete.cc:(.text+0x2d): undefined reference to `vPortFree(void*)'
  </code></pre>
  
  <p>Anyone have any ideas?</p>