protected void processExternalRelocations() throws CancelledException {
		LinkedHashMap<RelocationInfo, Address> relocationMap = new LinkedHashMap<>();
		for (DynamicSymbolTableCommand cmd : machoHeader
				.getLoadCommands(DynamicSymbolTableCommand.class)) {
			monitor.checkCancelled();
			List<RelocationInfo> relocations = cmd.getExternalRelocations();
			monitor.initialize(relocations.size(), "Processing external relocations...");
			for (RelocationInfo relocationInfo : relocations) {
				monitor.increment();
				relocationMap.put(relocationInfo, space.getAddress(relocationInfo.getAddress()));
			}
		}
		performRelocations(relocationMap);
	}
Processes the external relocations from all {@link DynamicSymbolTableCommand}s.

@throws CancelledException if the operation was cancelled.
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoProgramBuilder.java