title: What is the equivalent of GNU's --wrap linker flag in OS X linker?
body: <p>I'm trying to port a C program compiled with GNU toolchain to OS X but its default <code>ld</code> program does not support the <code>--wrap</code> flag, which is present in GNU's <code>ld</code>.
  This is from the man page of GNU's <code>ld</code>:</p>
  
  <pre><code>--wrap symbol
      Use a wrapper function for symbol.  Any undefined reference to sym-
      bol will be resolved to "__wrap_symbol".  Any  undefined  reference
      to "__real_symbol" will be resolved to symbol.
  
      This  can  be used to provide a wrapper for a system function.  The
      wrapper function should be called "__wrap_symbol".  If it wishes to
      call the system function, it should call "__real_symbol".
  
      Here is a trivial example:
  
              void *
              __wrap_malloc (size_t c)
              {
                printf ("malloc called with %zu\n", c);
                return __real_malloc (c);
              }
  
      If you link other code with this file using --wrap malloc, then all
      calls to "malloc" will call the function  "__wrap_malloc"  instead.
      The  call  to "__real_malloc" in "__wrap_malloc" will call the real
      "malloc" function.
  
      You may wish to provide a "__real_malloc" function as well, so that
      links  without the --wrap option will succeed.  If you do this, you
      should not put the definition of "__real_malloc" in the  same  file
      as  "__wrap_malloc";  if you do, the assembler may resolve the call
      before the linker has a chance to wrap it to "malloc".
  </code></pre>
  
  <p>Is there a portable way of achieving this?</p>