When manipulating object code, it's often useful to separate symbol references from symbol definitions -- for example in conjunction with the --wrap option to ld. Ordinarily --wrap doesn't work within the scope of a single object file, since the assembler has already resolved references to symbols defined in the same file. The attached patch to objcopy (current CVS) supports undoing this binding process, by providing an --unbind-symbol operation which replaces a single symbol entry SYMBOL with (up to) two: __def_SYMBOL and __ref_SYMBOL. It's not been extensively tested, but seems to work. If it looks good, please consider committing it. I'd be grateful for feedback in any case.
Created attachment 2839 [details] Patch to objcopy adding --unbind-symbol option