Comments (4)
Is there a specific reason for using gcc
instead of clang
? We had good experience cross compiling with clang
for RISCV, and presumably the ARM support is only better.
from microkit.
A benefit I like of using Clang over GCC would be that we can avoid the mess that is GCC cross-compiler toolchains since clang
is just a single binary for compiling all architectures (as far as I know). I think that it does not matter too much as the toolchain is only required for building the SDK, user code can use whatever toolchain it wants to.
from microkit.
I have played around with Clang a bit and unfortunately it seems like it is not much better. In order to build everything needed for Microkit you would need the LLVM linker as well as other tools such as llvm-ar
. These are not always easy to install depending on your host system.
I don't find this to be much better than GCC given you now have to acquire various binaries on your system to fully compile everything. With GCC there's just one path you need, but you need to have a separate one for each architecture.
Neither solution is ideal.
To my knowledge, the Zig C compiler is the only truly portable C compiler however the project is too immature and buggy to be used for production software such as Microkit (in my opinion).
from microkit.
I'm going to close the issue as #50 has been merged.
Regarding whether to use Clang over GCC, I don't feel strongly towards either. All other seL4 Foundation projects use GCC which may cause Microkit to end up sticking with GCC. I will definitely keep this in mind as the decision is not finalised yet and will decide what to do as we converge Microkit dependencies with current seL4 dependencies. Thanks for bringing it up @podhrmic.
from microkit.
Related Issues (20)
- Add 1GiB page size for AArch64
- Check that registered IRQ numbers are sane
- API for dealing with cache-coherency on ARM HOT 1
- Please add versioned releases of the sdk HOT 2
- Please do not rely on **any** system headers for the microkit API HOT 1
- Declare stable API & ABI to ease implementation of Rust API HOT 15
- Make `static inline` optional HOT 4
- seL4 floating point compilation support HOT 6
- What is the purpose of the content of a passive server's initialization complete message HOT 2
- manual: typos and other questions HOT 1
- tool: Use `rustfmt` HOT 7
- 1.3.0 release archive permissions HOT 2
- Tutorial: part4 ppcall from VMM to less prioritized Wordle_server HOT 6
- Allow specifying `phys_addr` for non-device memory
- Use larger pages when mapping in large ELFs
- Complain at a microkit level of IRQ ACK is called on a non-irq channel HOT 1
- setvar_vaddr will happily patch the same variable twice HOT 1
- Switch to LLVM based tools (?) HOT 4
- specify a Minimum Supported Rust Version (MSRV) for HOT 5
- Remove hardcoding of RISCV toolchain prefix HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from microkit.