A proposed change to Xorg upstream would use GNU ld's -wrap option to simplify some of the test cases that have to override functions with test wrappers - is there a Solaris ld equivalent of this functionality? A command line equivalent would be preferable, but a mapfile option could be made to work. It seems like it's a combination of symbol renaming, direct linking and an automatic dlsym alias to the function in a linked library.
The GNU ld documentation of this option: --wrap symbol Use a wrapper function for symbol. Any undefined reference to symbol 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. (copied from http://sourceware.org/binutils/docs-2.19/ld/Options.html#index-g_t_002d_002dwrap-249 ) -- -Alan Coopersmith- alan.coopersmith at sun.com Sun Microsystems, Inc. - X Window System Engineering