Skip to content

Commit 0c51e23

Browse files
committed
docs(getting_started,fill): added solc building instructions for arm64 users with fill issues
1 parent edc029d commit 0c51e23

File tree

2 files changed

+41
-8
lines changed

2 files changed

+41
-8
lines changed

docs/getting_started/installation.md

Lines changed: 19 additions & 8 deletions
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. If you are using an ARM64 OS ensure that you select the ARM64 tab below.
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+
=== "x86-64"
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"
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+
Follow [this guide](./installation_troubleshooting.md#problem-exception-failed-to-compile-yul-source) to build solidity 0.8.24 from source.
3546

3647
## Installation Troubleshooting
3748

docs/getting_started/installation_troubleshooting.md

Lines changed: 22 additions & 0 deletions
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,26 @@ 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`"
70+
This is happening when you are using an ARM64 OS but used the x86-64 installation guide.
71+
To resolve the issue you must build solidity from source (avoid 0.8.24 as it might require building z3 from source as well).
72+
73+
!!! success "Solution: Build solc from source"
74+
The following steps have been tested on Ubuntu 24.04.2 LTS ARM64:
75+
```bash
76+
git clone --branch v0.8.28 --depth 1 https://github.com/ethereum/solidity.git
77+
cd solidity && mkdir build && cd build
78+
sudo apt install build-essential libboost-all-dev z3
79+
cmake ..
80+
make
81+
mv $HOME/Documents/execution-spec-tests/.venv/bin/solc $HOME/Documents/execution-spec-tests/.venv/bin/solc-x86-64
82+
cp ./solc/solc $HOME/Documents/execution-spec-tests/.venv/bin/
83+
chmod +x $HOME/Documents/execution-spec-tests/.venv/bin/solc
84+
```
85+
Running `uv run solc --version` should now be functional. Verify that fill is now working by running `uv run fill -m yul_test` in the execution-spec-tests folder.
86+
6587
## Problem: `ValueError: unsupported hash type ripemd160`
6688

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

0 commit comments

Comments
 (0)