You mentioned wanting to track down where a routine comes from. The linker e-ld has an option to print out which input file a symbol is in. Use -y or --symbol-trace followed by the symbol name (you may need a leading underscore on the name). Doesn't seem to pick up references from libraries though.
Alternatively the -M map option on the linker might give you a clue as ou could see what is close to that routine and there might be another name you recognise.
Tim