private void processRelocationTable(ElfRelocationTable relocationTable,
			ElfRelocationContext<?> context, TaskMonitor monitor) throws CancelledException {

		Address defaultBase = getDefaultAddress(elf.adjustAddressForPrelink(0));
		AddressSpace defaultSpace = defaultBase.getAddressSpace();
		long defaultBaseOffset = defaultBase.getAddressableWordOffset();

		Address relocTableAddr = null;

		ElfSectionHeader section = relocationTable.getTableSectionHeader();
		if (section != null) {
			relocTableAddr = findLoadAddress(section, 0);
		}
		else {
			relocTableAddr = findLoadAddress(relocationTable.getFileOffset(), 1);
		}

		/**
		 * Cases:
		 * 1. elf.isRelocatable()
		 * 	a) sectionToBeRelocated null (may be NULL section?)
		 *  b) sectionToBeRelocated known - offset relative to section load address
		 *
		 * 2. !elf.isRelocatable()
		 *  a) sectionToBeRelocated null (may be NULL section?)
		 *  b) sectionToBeRelocated known - offset relative to image base
		 */

		AddressSpace relocationSpace = defaultSpace;
		long baseOffset = defaultBaseOffset;

		ElfSectionHeader sectionToBeRelocated = relocationTable.getSectionToBeRelocated();
		if (sectionToBeRelocated != null) {
			// relocation offsets are relative to start of section load address
			Address sectionLoadAddr = findLoadAddress(sectionToBeRelocated, 0);
			if (sectionLoadAddr == null) {
				log("Failed to identify relocation base address for relocation table 0x" +
					relocationTable.getAddressOffset() + " [section: " +
					sectionToBeRelocated.getNameAsString() + "]");
				monitor.incrementProgress(relocationTable.getRelocationCount());
				return;
			}
			relocationSpace = sectionLoadAddr.getAddressSpace();
			if (elf.isRelocatable()) {
				baseOffset = sectionLoadAddr.getAddressableWordOffset();
			}
			else if (relocationSpace != defaultSpace) {
				baseOffset = 0;
			}
		}

		if (relocTableAddr != null) {
			markupRelocationTable(relocTableAddr, relocationTable, monitor);
		}

		processRelocationTableEntries(relocationTable, context, relocationSpace, baseOffset,
			monitor);
	}
Attempt to create an entry point function.
Note: entries in the dynamic table appear to have any pre-link adjustment already applied.
@param name function name
@param entryAddress function Address
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/ElfProgramBuilder.java