selfrando can be used to harden your software beyond what is possible with current mitigations. Inspired by biodiversity in nature and existing randomizing defenses, selfrando varies the attack surface, i.e., the code layout, by randomizing each function separately. This makes exploit writing harder and increases resilience to information leakage relative to traditional address space layout randomization (ASLR) techniques. https://github.com/immunant/selfrando
The white paper: https://www.ics.uci.edu/~perl/pets16_selfrando.pdf Note: he paper states that it doesn't interfere with deterministic builds.
The implemention instructions make it seems easy. https://github.com/immunant/selfrando/blob/master/docs/linux-build-instructions.md
Tor has enabled selfrando on their linux 64bit builds, I believe support for windows and 32 bit is currently being developed. https://blog.torproject.org/blog/tor-browser-70a4-released