Closed jschlatow closed 8 months ago
Fixed by b42988b
On my system this breaks any first build (i.e., goa run
) with make: *** No rule to make target '/path/to/goa/examples/hello_rust/var/abi/x86_64/ld.lib.so', needed by 'default'. Stop.
A subsequent goa run
then succeeds. I haven't looked into the change to figure out why this happens yet.
That is strange. Can you have a look at the content of the var/ directory after the first, failed, build?
The directory just contains var/abi/x86_64/ld.symbols.s
because the make breaks right after. For me the effect already happens with the hello_make example and no goarc
. With this change reverted this does not happen. Can you reproduce this? I have looked at the commit but I wasn't able to figure out why make wouldn't apply the last rule.
No, I cannot reproduce this. What's your GNU Make version?
GNU Make 4.3
Upgrading my system to GNU Make 4.4 resolves the issue.
I added a fixup commit f96b6b0 that solves the issue with GNU Make 4.3.
When changing the version of an api archive used by a Goa project, the implemented symbols might change as well. However, the abi stubs stored in the var/abi/ directory are not regenerated automatically. Currently, we therefore need to remove the var/ directories when switching between Goa releases or when using
--versions-from-genode-dir
.