private int getBasicExternalDiffs(ExternalLocation externalLocation1,
			ExternalLocation externalLocation2) {

		int conflicts = 0; // No conflict
		if ((externalLocation1 == null) || (externalLocation2 == null)) {
			throw new IllegalArgumentException("External location can't be null.");
		}

		// Neither is null so lets compare them.

		Namespace namespace1 = externalLocation1.getParentNameSpace();
		String label1 = externalLocation1.getLabel();
		DataType dataType1 = getResultDataType(externalLocation1);
		Address address1 = externalLocation1.getAddress();
		SourceType sourceType1 = externalLocation1.getSource();
		Symbol symbol1 = externalLocation1.getSymbol();
		SymbolType symbolType1 = symbol1.getSymbolType();
		Function function1 = externalLocation1.getFunction();

		Namespace namespace2 = externalLocation2.getParentNameSpace();
		String label2 = externalLocation2.getLabel();
		DataType dataType2 = getResultDataType(externalLocation2);
		Address address2 = externalLocation2.getAddress();
		SourceType sourceType2 = externalLocation2.getSource();
		Symbol symbol2 = externalLocation2.getSymbol();
		SymbolType symbolType2 = symbol2.getSymbolType();
		Function function2 = externalLocation2.getFunction();

		// TODO: Does not consider original imported name

		if (!equivalentNamespaces(namespace1, namespace2)) {
			conflicts |= EXTERNAL_NAMESPACE;
		}
		if (!isSameLabel(label1, label2, sourceType1, sourceType2)) {
			conflicts |= EXTERNAL_LABEL;
		}
		if (!SystemUtilities.isEqual(address1, address2)) {
			conflicts |= EXTERNAL_ADDRESS;
		}
//		if (!sourceType1.equals(sourceType2)) {
//			conflicts |= EXTERNAL_SOURCE_TYPE;
//		}
		if (!isSameDataType(dataType1, dataType2)) {
			conflicts |= EXTERNAL_DATA_TYPE;
		}
		if (symbolType1 != symbolType2) {
			conflicts |= EXTERNAL_SYMBOL_TYPE;
		}
		if (!ProgramDiff.equivalentFunctions(function1, function2)) {
			conflicts |= EXTERNAL_FUNCTION;
		}

		return conflicts;
	}
@param entry
@param type (FUNC_RETURN_TYPE, FUNC_RETURN_ADDRESS_OFFSET,
FUNC_PARAMETER_OFFSET, FUNC_LOCAL_SIZE, FUNC_STACK_PURGE_SIZE, FUNC_NAME, FUNC_INLINE,
FUNC_NO_RETURN, FUNC_CALLING_CONVENTION)
@param latestMyChanges
@param originalLatestChanges
@param originalMyChanges
@param monitor
@return
@throws CancelledException
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalFunctionMerger.java