Make ghc -dynamic imply -fPIC for C code
As is already the case for ghc -fPIC. This is needed because ghc -dynamic means to generate code that is capable of being linked to Haskell shared libs and for C code the equivalent is -fPIC. Normally C code does not need -fPIC merely to link to shared libs however Haskell shared libs do not follow common conventions. In particular the static data cannot be referenced statically because it cannot be copied by the static linker. The linker cannot copy them because we do not specify a .size for the _closure entries (in the .data section) though in principle we could.