Skip to content

ci.sh: build yosys from source using CMake - #234

Merged
tgingold merged 3 commits into
ghdl:masterfrom
donnie-j:fix/yosys-cmake-build
Jun 22, 2026
Merged

ci.sh: build yosys from source using CMake#234
tgingold merged 3 commits into
ghdl:masterfrom
donnie-j:fix/yosys-cmake-build

Conversation

@donnie-j

Copy link
Copy Markdown
Contributor

Closes #229 May not be the preferred approach, since it builds Yosys from source and takes 10min extra.

Yosys has switched to CMake; the Makefile build no longer works on current main. Ubuntu 22.04 apt ships CMake 3.22 which is too old (3.28+ required), so bootstrap a recent version via pip.

Building yosys from source on the same runner eliminates the std::source_location ABI mismatch that caused plugin load failures when mixing an oss-cad-suite binary with a locally-compiled plugin. Both yosys and the plugin now use the same toolchain and headers.

Tested: CI green on ubuntu-22.04 (run #10).

donnie-j and others added 2 commits June 22, 2026 19:51
Yosys has switched to CMake; the Makefile build no longer works on
current main. Ubuntu 22.04 apt ships CMake 3.22 which is too old
(3.28+ required), so bootstrap a recent version via pip.

Building yosys from source on the same runner eliminates the
std::source_location ABI mismatch that caused plugin load failures
when mixing an oss-cad-suite binary with a locally-compiled plugin.
Both yosys and the plugin now use the same toolchain and headers.

Tested: CI green on ubuntu-22.04 (run ghdl#10).
@tgingold

Copy link
Copy Markdown
Member

Thank you for the analysis and the fix.

However, building yosys takes too much time. So I keep the fetch of yosys, but I have updated clang++ to avoid the library incompatibility.

@tgingold
tgingold merged commit a45a8fb into ghdl:master Jun 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI broken: undefined symbol in Pass constructor after Yosys nightly update

2 participants