Some recent experience on llvm-dev pointed out some errors in the document such as:
- Assumption of ninja without -GNinja
- Use of --march rather than -march
- Problems with host include files when a multiarch setup was used
- Insufficient flags given to clang when acting as the assembler
- Instructions on using the cmake cache file BaremetalARM.cmake were incomplete
There was also insufficient troubleshooting information for when a step went wrong. I've made an effort to improve the document a bit based on this experience. Main changes:
- Fixed the problems described above
- Added a troubleshooting section
- Cleared up one "at time of writing" that is no longer a problem.
There are quite a few changes in the doc. I'm happy to break this up into smaller changes.
For "A" targets, we recommend putting compiler-rt into llvm/projects, but for "M" targets we recommend putting it into llvm/runtimes? That seems kind of confusing... if it's intentional, please call it out explicitly.