private void adjustReadOnlyMemoryRegions(TaskMonitor monitor) {

		monitor.setMessage("Processing read-only memory changes");

		for (ElfProgramHeader relRoHeader : elf
				.getProgramHeaders(ElfProgramHeaderConstants.PT_GNU_RELRO)) {

			long size = relRoHeader.getMemorySize();
			if (size <= 0) {
				log("PT_GNU_RELRO has unsupported memory size: " + size);
				continue;
			}

			Address startAddr = getSegmentLoadAddress(relRoHeader);
			if (!startAddr.isLoadedMemoryAddress()) {
				log("Failed to identify PT_GNU_RELRO memory at address offset " +
					Long.toHexString(relRoHeader.getVirtualAddress()));
				continue;
			}

			Address endAddr = startAddr.add(relRoHeader.getAdjustedMemorySize() - 1);
			setReadOnlyMemory(new AddressRangeImpl(startAddr, endAddr));
		}
	}
Adjust read-only sections/segments following relocations (PT_GNU_RELRO, .data.rel.ro, ...).
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/ElfProgramBuilder.java