Skip to content
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

Add aarch64 Linux to the nightly build #684

Closed
nikitastupin opened this issue Feb 6, 2022 · 9 comments · Fixed by #694
Closed

Add aarch64 Linux to the nightly build #684

nikitastupin opened this issue Feb 6, 2022 · 9 comments · Fixed by #694
Labels
A-releases Area: releases/packaging D-easy Difficulty: easy good first issue Good for newcomers

Comments

@nikitastupin
Copy link

Component

Foundryup

Describe the feature you would like

Hey 👋

Can we add the aarch64 Linux target to the nightly build? It would be nice so that me and other aarch64 Linux users won't need to rebuild from sources each time.

It should be just adding a few lines to release.yml.

Thanks!

Additional context

No response

@nikitastupin nikitastupin added the T-feature Type: feature label Feb 6, 2022
@onbjerg onbjerg added A-releases Area: releases/packaging and removed T-feature Type: feature labels Feb 6, 2022
@onbjerg
Copy link
Member

onbjerg commented Feb 6, 2022

The Solidity compiler does not have ARM builds, so I'm not sure it would make much sense - can you elaborate a little?

@nikitastupin
Copy link
Author

That's true, Solidity compiler doesn't provide pre-compiled ARM builds. However, (1) it's still possible to use cast without a Solidity compiler and (2) Solidity compiler updates not so frequently so I can compile it manually and use with forge; at the same time both forge and cast gets bug fixes and new features almost every day and it's good to just download a binary (instead of compiling every day) to test out new features 😄

@gakonst
Copy link
Member

gakonst commented Feb 6, 2022

@nikitastupin Do you think you could manually compile and create a repo with ARM builds for Solc versions, and host it on Github? Then we could use that as source of truth instead. Trail of Bits did something similar here https://github.com/crytic/solc/tree/master/linux/amd64

@onbjerg I think let's just add it to the releases, the argument made here makes sense, both for cast and for forge with auto-detection off. We could have an FAQ note that tells people to just --no-auto-detect?

@onbjerg onbjerg added D-easy Difficulty: easy good first issue Good for newcomers labels Feb 6, 2022
@nikitastupin
Copy link
Author

I think I could invest a couple of hours trying to automate ARM build 😃 It would help myself in the future and others.

Also, the ethereum/solidity#11351 issue tracks Solidity's progress on the same issue. They consider it low-priority though.

@gakonst
Copy link
Member

gakonst commented Feb 6, 2022

That's be awesome. Appreciate it. Let us know when you have it, so we integrate it in svm-rs.

I think we cannot depend on it getting solved at core Solidity soon, we've asked them directly very recently and got the same answer

@nikitastupin
Copy link
Author

nikitastupin commented Feb 6, 2022

It seems that it's not that hard to automate aarch64-linux builds. I started working on it at https://github.com/nikitastupin/solc. The core is GitHub Actions workflow that I manually trigger to run a build process for a specified version of Solidity compiler and then upload the binary back to the repo via Releases.

@nikitastupin
Copy link
Author

A quick update on https://github.com/nikitastupin/solc. I decided to keep it simple and store binaries in the repo instead of Releases and uploaded v0.8.*, v0.7.*, v0.6.*, and some of v0.5.* binaries. I have experienced issues building v0.4.* and some of v0.5.* binaries. I'm gonna dig into it later.

Does the repo structure looks good for you? Any other comments?

@gakonst
Copy link
Member

gakonst commented Feb 8, 2022

This looks great. Flagged it to @roynalnaruto, he'll incorporate this in svm-rs. Thank you @nikitastupin!

@roynalnaruto
Copy link
Contributor

@nikitastupin Hi, that's great work! I wish to make an addition to your solc repository to add a list.json of all the binaries (for Linux Aarch64) and the tags that were used and an SHA256 checksum of the binary. Something similar to this:
https://binaries.soliditylang.org/macosx-amd64/list.json

I cannot see the tag value you used to build and publish the existing binaries, could you help me out with that?

I'll wrap up the rest of the changes required and file a PR to your repo by tmrw :)

@gakonst gakonst closed this as completed in 2fecfa9 Feb 9, 2022
gakonst added a commit that referenced this issue Feb 9, 2022
bumps svm-rs.
fixes #525
fixes #684

driveby: re-enable geb integration test (fixed in gakonst/ethers-rs#866)
fixes #561
gakonst added a commit that referenced this issue Feb 9, 2022
bumps svm-rs.
fixes #525
fixes #684

driveby: re-enable geb integration test (fixed in gakonst/ethers-rs#866)
fixes #561
gakonst added a commit that referenced this issue Feb 9, 2022
bumps svm-rs.
fixes #525
fixes #684
charisma98 added a commit to charisma98/foundry that referenced this issue Mar 4, 2023
0129general added a commit to 0129general/FoundryProject that referenced this issue May 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-releases Area: releases/packaging D-easy Difficulty: easy good first issue Good for newcomers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants