Kernel Support exec_elf.c taught to recognize pie programs DYNAMIC + INTERP section == pie program new uvm function to return random load address vaddr_t uvm_map_pie(vaddr_t align); VM_PIE_MAX_ADDR, VM_PIE_MIN_ADDR, VM_PIE_MIN_ALIGN arc4random_uniform(3) AUXV data adjusted to account for loading at random address What memory range to use for PIE?