iOS cross compiler build is slightly broken
Summary
There are a couple of pain points trying to build GHC 9.0.1 as a aarch64-apple-ios cross compiler.
Steps to reproduce
./configure --target=aarch64-apple-ios && gmake -k in the GHC 9.0.1 source distribution on x86_64 macOS 11.2.3 with wrapper scripts aarch64-apple-ios-clang etc. on the PATH that invoke the corresponding utilities through xcrun (XCode 12.4). Having either LLVM 11 or LLVM 9 (as some of the errors from using LLVM 11 suggest) on the PATH reproduces failure.
Expected behavior
Once the dust settles, there appear to be 2 files that fail to compile in the RTS and a whole slew of GHC panics from ghc-stage1 about not being able to look up the data layout for arm64-apple-ios (note the triple has changed!).
AFAICT the note about LLVM not understanding aarch64-apple-ios is not true (anymore), so I can fix the panics by changing the LLVM arch from arm64-apple-ios to aarch64-apple-ios in mk/project.mk. The RTS compilation errors appear to be because a couple of #if defined(darwin_HOST_OS) branches were not being taken, which I can fudge by adding appropriate || defined(ios_HOST_OS)s near the errors. Then gmake clean && gmake successfully builds. I'm not sure how to "correctly" fix these, so I'm opening an issue instead of an MR. In particular, mk/project.mk is supposed to be auto-generated, and I'm wondering if there are more Darwin/iOS branches incorrectly labelled only Darwin.