genodelabs / goa

Tool for streamlining the development of Genode applications
GNU Affero General Public License v3.0
19 stars 18 forks source link

abi stubs are not regenerated when versions of api archives changed #62

Closed jschlatow closed 8 months ago

jschlatow commented 10 months ago

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.

jschlatow commented 10 months ago

Fixed by b42988b

atopia commented 10 months ago

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.

jschlatow commented 10 months ago

That is strange. Can you have a look at the content of the var/ directory after the first, failed, build?

atopia commented 10 months ago

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.

jschlatow commented 10 months ago

No, I cannot reproduce this. What's your GNU Make version?

atopia commented 10 months ago

GNU Make 4.3

atopia commented 10 months ago

Upgrading my system to GNU Make 4.4 resolves the issue.

jschlatow commented 9 months ago

I added a fixup commit f96b6b0 that solves the issue with GNU Make 4.3.