private void fixupMipsGot(ElfLoadHelper elfLoadHelper, TaskMonitor monitor)
			throws CancelledException {

		ElfHeader elfHeader = elfLoadHelper.getElfHeader();
		ElfDynamicTable dynamicTable = elfHeader.getDynamicTable();
		ElfSymbolTable dynamicSymbolTable = elfHeader.getDynamicSymbolTable();
		if (dynamicTable == null || dynamicSymbolTable == null) {
			return;
		}

		ElfSymbol[] elfSymbols = dynamicSymbolTable.getSymbols();

		// Ensure that we can get the required dynamic entries to avoid NotFoundException
		if (!dynamicTable.containsDynamicValue(DT_MIPS_PLTGOT) ||
			!dynamicTable.containsDynamicValue(DT_MIPS_GOTSYM)) {
			return;
		}

		Program program = elfLoadHelper.getProgram();

		Symbol mipsPltgotSym = SymbolUtilities.getLabelOrFunctionSymbol(program, "__DT_MIPS_PLTGOT",
			err -> elfLoadHelper.getLog().appendMsg(err));
		if (mipsPltgotSym == null) {
			return; // unexpected
		}
		Address mipsPltgotBase = mipsPltgotSym.getAddress();

		try {

			int gotSymbolIndex = (int) dynamicTable.getDynamicValue(DT_MIPS_GOTSYM);

			long imageShift = elfLoadHelper.getImageBaseWordAdjustmentOffset();

			// process global dynamic symbol got entries
			int gotEntryIndex = 1;
			for (int i = 0; i < gotSymbolIndex; i++) {
				monitor.checkCancelled();
				if (!elfSymbols[i].isFunction() || !elfSymbols[i].isGlobal() ||
					elfSymbols[i].getSectionHeaderIndex() != 0) {
					continue;
				}
				Address gotEntryAddr = adjustTableEntryIfNonZero(mipsPltgotBase, ++gotEntryIndex,
					imageShift, elfLoadHelper);
				Data pointerData = elfLoadHelper.createData(gotEntryAddr, PointerDataType.dataType);
				ElfDefaultGotPltMarkup.setConstant(pointerData);
			}
		}
		catch (NotFoundException e) {
			throw new AssertException("unexpected", e);
		}
		catch (MemoryAccessException e) {
			elfLoadHelper.log("Failed to adjust MIPS GOT: " + e.getMessage());
		}
	}
Attempt to update external dynamic .got entries for non-relocatable binaries.
@param elfLoadHelper ELF load helper
@param elfSymbol ELF symbol being processed
@param address dynamic symbol address
Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/extend/MIPS_ElfExtension.java