uber / uber/hermetic_cc_toolchain

Adding support for freestanding arm targets (for embedded development)

Open
#175 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Starlark
Stars
402
Forks
88
PR merge metrics
No merged PRs in 30d

Description

Hello and first of thank you for this awesome toolchain!

In order to use this zig toolchain approach for embedded development it would be very helpful to be able to target arm-none-eabi, or I guess in zig targets arm-freestanding-eabi.

I see arm has Tier 1 support in the zig ecosystem: https://ziglang.org/download/0.11.0/release-notes.html#Tier-1-Support

I have then downloaded the zig 0.11 toolchain and ensured that the abi and cpus which would be targeted have support via the output of zig targets; support for the abi eabi and the target processors in my case (cortex_m4 and cortex_m7) is present.

I looked through the addition of the wasm target: https://github.com/uber/hermetic_cc_toolchain/pull/165 and the current codebase to see what would need to be done.

Are there any plans to add support for arm and/or freestanding targets?

Are the wrappers strictly necessary or would it be feasible to skip using the wrappers in order to be able to specify more targets such as arm-freestanding-eabi with different values for -mcpu?

Thank you in advance,
Daniel Gunzinger

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 by comparing the wasm target addition in PR #165 with the current toolchain wrappers, then verify the requested arm-freestanding-eabi target and cortex_m4/cortex_m7 CPUs using zig targets. Done means the toolchain supports the requested freestanding ARM target and allows the relevant -mcpu values without relying on unsupported assumptions about the wrappers.

Written by the indexing model from the issue text.

Assessment

Tech stack
zig
Domain
build-system, embedded-iot
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.