Update Home
parent
276eb7adbd
commit
c82d1a2ba1
4
Home.md
4
Home.md
@ -8,14 +8,14 @@ A great way to learn something new is to retrace the steps taken by someone who
|
||||
|
||||
To safeguard against dependency hell, all the essential software needed to develop and run our OS will be provided through a set of Docker images. For more information, please refer to [this section](https://gitea.dmz.rs/sborovic/dmzOS#development-environment) of README.
|
||||
|
||||
***Which compiler to use, gcc or clang?***
|
||||
***Which compiler to use: gcc or clang?***
|
||||
* Compilation times are comparable
|
||||
* Clang reportedly has better error messages
|
||||
* Clang/LLVM `lld` links on average twice as fast as GCC `ld` (Up to 10 times faster, reportedly. lld uses more cores?)
|
||||
* GCC - GPL, Clang - Apache licenses
|
||||
* While the standard may move to LLVM, GCC still remains the industry standard as of now.
|
||||
|
||||
Decision: TL;DR - *GCC*.
|
||||
**Decision**: TL;DR - *GCC*.
|
||||
|
||||
They have many differences, above are the potentially most relevant. The GPL license seems preferable in this case, which is a point in favor of GCC. A major performance consideration comes when there are a lot of lib files as well as `-debug` mode (which is expected to be the case in this project). This difference will come down to the linker, and seeing as `lld` can be a drop-in replacement for `ld`, and added independently of Clang, it is not a major point in favor of Clang. We can simply install `lld` from the LLVM backend (Clang is just the frontend), and pass the `-fuse-ld=lld` flag to GCC to make it use `lld` instead of `ld`. For these reasons, I propose to start with GCC.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user