Run validate script. I also added 4 test cases. On my machine, I've run validate with libelf installed, and the build machine that run phabricator diffs validates without libelf installed.
This patch doesn't change many existing code paths of the compiler code or the run time system. So it's quite unintrusive in that regard. However, it does change build requirements and files like `distrib/configure.ac.in` in order to make libelf optional at user compile time (when you download ghc from ) instead of at the time a ghc maintainer compiles it. These changes are also covered by `./validate` in its `make test_bindtest` step.