private static Symbol getOtherExternalLocationSymbol(Symbol symbol, Program otherProgram,
			Namespace otherNamespace) {

		ExternalLocation external = getExternalLocation(symbol);

		// TODO: This match-up is exact based upon name and namespace and does not consider 
		// the original imported name or address, however these attributes must match. 

		// TODO: It is rather confusing to have two sets of methods for finding external
		// locations.  This should be simplified.  getOther... getMatchingExternal...

		SymbolTable otherSymbolTable = otherProgram.getSymbolTable();
		List<Symbol> otherSymbols = otherSymbolTable.getSymbols(symbol.getName(), otherNamespace);

		if (otherSymbols.size() == 1) {
			Symbol s = otherSymbols.get(0);
			return s.getSymbolType() == symbol.getSymbolType() ? s : null;
		}

		for (Symbol s : otherSymbols) {
			ExternalLocation otherExternalLocation = getExternalLocation(s);
			if (external.isEquivalent(otherExternalLocation)) {
				return s;
			}
		}
		return null;
	}
Given a symbol for a specified program, get the corresponding symbol from the
specified otherProgram.
<br>
In the case of external locations this performs an exact match based upon symbol name, 
namespace and symbol type.

@param symbol symbol to look for
@param otherProgram other program
@return corresponding symbol for otherProgram or null if no such symbol exists.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/SimpleDiffUtility.java