NatLabRockies / NatLabRockies/Spawn

Mac OS X (Apple Sillicon) support

Open
#64 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
19
Forks
10
PR merge metrics
No merged PRs in 30d

Description

I have managed to get part of the way in getting Spawn running on a MacBook w. M2 processor.
I can compile a working spawn w/o compiler toolchain embedded with a few changes to CMake files + compilation of the EnergyPlus and pyfmi dependencies.

However, for it to be super useful for me, I would love to see the compiler toolchain embedded, since then I can short-circuit e.g. Dymola which does not provide Mac (and/or ARM) builds 👎 , and at least compile FMUs for simulations/control development purposes. This would be a killer setup - and super useful to have a cli tool to build FMUs without relying on Dymola...

I get the following errors in c_compiler/compiler.cpp, but looking at the file I can see that this is def. where work is needed to get it running on Mac OS X w. Apple Sillicon 🥲 :

builds/spawn/c_compiler/compiler.cpp:317:20: error: no member named 'elf' in namespace 'lld' [clang-diagnostic-error]
  317 |     success = lld::elf::link(Args, false /*canExitEarly*/, out, err);

builds/spawn/c_compiler/compiler.cpp:291:23: error: object of type 'ErrorHandler' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]
  291 |   lld::errorHandler() = lld::ErrorHandler{};

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with c_compiler/compiler.cpp and the CMake files changed for the reported Apple Silicon build, then reproduce the lld errors with the embedded toolchain enabled. Check how EnergyPlus and pyfmi dependencies are compiled on macOS. Done means Spawn builds on an Apple Silicon Mac with the compiler toolchain embedded.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp, macos
Domain
build-system, compilers, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.