Skip to content

Commit c35b42f

Browse files
felix314159danceratopzmarioevz
authored
docs(getting_started,fill): add solc instructions for arm64 users with fill issues (#1217)
* docs(getting_started,fill): added solc building instructions for arm64 users with fill issues * Clarified instructions Co-authored-by: danceratopz <[email protected]> * Clarified instructions Co-authored-by: danceratopz <[email protected]> * Clarified that we refer to Linux ARM, not to macOS Co-authored-by: danceratopz <[email protected]> * Update docs/getting_started/installation.md Co-authored-by: danceratopz <[email protected]> --------- Co-authored-by: danceratopz <[email protected]> Co-authored-by: Mario Vega <[email protected]>
1 parent 45d66b9 commit c35b42f

File tree

3 files changed

+48
-8
lines changed

3 files changed

+48
-8
lines changed

docs/getting_started/installation.md

+19-8
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,27 @@ The latest version of `uv` can be installed via `curl` (recommended; can self-up
2222

2323
If installed via `curl`, `uv` will download Python for your target platform if one of the required versions (Python 3.10, 3.11 or 3.12) is not available natively.
2424

25-
## Installation
25+
## Installation Commands
2626

27-
Clone [execution-spec-tests](https://github.com/ethereum/execution-spec-tests) and install its dependencies:
27+
Clone [execution-spec-tests](https://github.com/ethereum/execution-spec-tests) and install its dependencies.
2828

29-
```console
30-
git clone https://github.com/ethereum/execution-spec-tests
31-
cd execution-spec-tests
32-
uv sync --all-extras
33-
uv run solc-select use 0.8.24 --always-install
34-
```
29+
=== "All x86-64 platforms and ARM64 macOS"
30+
31+
```console
32+
git clone https://github.com/ethereum/execution-spec-tests
33+
cd execution-spec-tests
34+
uv sync --all-extras
35+
uv run solc-select use 0.8.24 --always-install
36+
```
37+
38+
=== "ARM64 Linux"
39+
40+
```console
41+
git clone https://github.com/ethereum/execution-spec-tests
42+
cd execution-spec-tests
43+
uv sync --all-extras
44+
```
45+
Then follow [this guide](./installation_troubleshooting.md#problem-exception-failed-to-compile-yul-source) to build the `solc` binary from source and copy it to the expected location.
3546

3647
## Installation Troubleshooting
3748

docs/getting_started/installation_troubleshooting.md

+28
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ This page provides guidance on how to troubleshoot common issues that may arise
3636

3737
## Problem: `solc` Installation issues
3838

39+
### Problem: `CERTIFICATE_VERIFY_FAILED`
40+
3941
!!! danger "Problem: `Failed to install solc ... CERTIFICATE_VERIFY_FAILED`"
4042
When running either `uv run solc-select use 0.8.24 --always-install` or `fill` you encounter the following error:
4143

@@ -62,6 +64,32 @@ This page provides guidance on how to troubleshoot common issues that may arise
6264
/Applications/Python\ 3.11/Install\ Certificates.command
6365
```
6466

67+
### Problem: `Exception: failed to compile yul source`
68+
69+
!!! danger "Problem: `Running fill fails with tests that contain yul source code` on ARM platforms"
70+
If you're using `x86_64`, try to manually run `solc-select` to install the required version of the `solc` binary:
71+
72+
```shell
73+
uv run solc-select use 0.8.24 --always-install
74+
```
75+
76+
Otherwise, this can happen when you're using an ARM64 OS but followed the x86-64 installation guide.
77+
To resolve the issue you must build solidity from source (avoid 0.8.24 as it might require building z3 from source as well).
78+
79+
!!! success "Solution: Build solc from source"
80+
The following steps have been tested on Ubuntu 24.04.2 LTS ARM64:
81+
```bash
82+
git clone --branch v0.8.28 --depth 1 https://github.com/ethereum/solidity.git
83+
cd solidity && mkdir build && cd build
84+
sudo apt install build-essential libboost-all-dev z3
85+
cmake ..
86+
make
87+
mv $HOME/Documents/execution-spec-tests/.venv/bin/solc $HOME/Documents/execution-spec-tests/.venv/bin/solc-x86-64
88+
cp ./solc/solc $HOME/Documents/execution-spec-tests/.venv/bin/
89+
chmod +x $HOME/Documents/execution-spec-tests/.venv/bin/solc
90+
```
91+
Running `uv run solc --version` should now return the expected version. Verify that `fill` works by running `uv run fill -m yul_test` in the execution-spec-tests root folder.
92+
6593
## Problem: `ValueError: unsupported hash type ripemd160`
6694

6795
!!! danger "Problem: `Running fill fails with tests that use the RIPEMD160 precompile (0x03)`"

whitelist.txt

+1
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@ listdir
277277
lll
278278
lllc
279279
london
280+
LTS
280281
macOS
281282
mainnet
282283
makefiles

0 commit comments

Comments
 (0)