-
Notifications
You must be signed in to change notification settings - Fork 55
Add macOS support #94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
1021e12
to
2cfe8b0
Compare
Right, well looks like the timeout I mentioned happened on the very first CI run for building the macOS SDK. |
If you're referencing a specific file, then a faster mirror would be fine. It's an additional step when you update the dependency, but you could have a script for that. We could put the file on a foundation's AWS S3 bucket, for instance. Cost would be negligible for CI traffic. You could also try caching the download with http://github.com/actions/cache, but that first needs a successful download. |
The Microkit tool can now be built for x64 macOS as well as ARM64 macOS, allowing the use of the Microkit SDK in macOS environments. Note that unlike the Linux Microkit tool, the macOS one will be dynamically linked due to macOS not supporting statically linked binaries. Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
Add the `--tool-target-triple` option to specify which target to build the tool for. Unfortunately Rust does not allow you to cross-compile from Linux to macOS, however this will allow x64 macOS hosts to cross-compile to ARM64 macOS. In theory the reverse would work as well but I have not tried it. Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
The only change necessary to update from GCC 10 to GCC 12 is that the option `-g3` needs to be `-g` instead. Why do we have to update to GCC 12? The main motivation is to have the toolchain available for macOS Apple Silicon hosts that want to build the Microkit SDK from source. The toolchain for Apple Silicon hosts is only available from GCC 12 and above. Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
7e2ed03
to
d533e5d
Compare
Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
This patch updates the pyoxidizer dependency to the latest current version. The main motivation for this is that it fixes an issue with cross-compiling from x86-64 macOS to AArch64 macOS. Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
60f2a7f
to
fb2c3e4
Compare
Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
Getting the toolchains from the AWS bucket seems to be working well. I kept the README links to the ARM website since it probably looks a bit dodgy to newcomers to download some specific toolchain off an AWS bucket. @lsf37 what do you think? |
Agreed, that's a good idea. Also reduces traffic to AWS :-) |
It would be sad to force macOS users to have to dual boot or use a Docker container in order to use the Microkit SDK. These patches add macOS support to the Microkit SDK and have received internal use at TS for a while now so I think it's fair to say that the macOS support will be stable.
Couple of things left to do: