abi stubs are not regenerated when versions of api archives changed
Closed this issue · 8 comments
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
.
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.