When a normal dynamically linked ELF program runs, the kernel maps ld-elf.so.1 very high in the address space, somewhere around 0x800000000 on amd64. When the same program is run by invoking /libexec/ld-elf.so.1 {program name}, the kernel maps the rtld binary very low, around 0x1000000ish. This is fine for some programs, but a relatively large one, such as the clang binary from the clang60 or clang70 port does not fit in the gap and crashes on startup.