Hadrian should build dynamically linked ghc binary
The ghc binary is dynamically linked via make in various flavors (e.g. quick). Hadrian builds a static linked binary in these cases (this is a bug). Various change are needed to fix this:
- Add new .cabal file field extra-dynamic-library-flavours (see this PR).
- Use .cabal extra-dynamic-library-flavours for the RTS (see this comment, depends on 1.)
- Hadrian: fix management of nontrivial dynamic flavours of libHSrts (see this PR).
- Hadrian should build ghc with the
-fPIC -dynamic
options (see this comment, depends on 3.). - Use the correct relative path to the dynamically linked libraries (see D5281, depends on 3. and 4.).
- Build ghc-iserv-dyn, as it is will be required required by many tests (Phab:D5327)
- Hadrian should only use "-shared -dynload deploy" when linking shared libraries (definitely not when linking executables). This problem causes ghc-iserv-dyn to segfault because it is built as a shared library instead of as an executable.