You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently an application that was linked to a newer libcartesi.so version such as v0.14.0 is able to run on systems with old emulators version such as v0.13.0 and potentially crash because of mismatches in the C ABI interface. This is because the shared library always has the name cartesi.so, and there is no option to link to a versioned shared library.
This is also a problem in an environment where different emulator versions coexist in different paths, a typical situation when developing a new emulator while having to test an old emulator.
Possible solutions
We should start distributing a versioned shared library, such as libcartesi.so.0.14.0 and make libcartesi.so a symlink to it.
This way we can link programs to versioned shared libraries, and then attempts to run an application that was actually linked to a different emulator will give an error about the shared library not found instead of a crash or undefined behavior. We should also make use of this, that is, start to link a versioned library for cartesi.so.
The text was updated successfully, but these errors were encountered:
Context
Currently an application that was linked to a newer
libcartesi.so
version such as v0.14.0 is able to run on systems with old emulators version such as v0.13.0 and potentially crash because of mismatches in the C ABI interface. This is because the shared library always has the namecartesi.so
, and there is no option to link to a versioned shared library.This is also a problem in an environment where different emulator versions coexist in different paths, a typical situation when developing a new emulator while having to test an old emulator.
Possible solutions
We should start distributing a versioned shared library, such as
libcartesi.so.0.14.0
and makelibcartesi.so
a symlink to it.This way we can link programs to versioned shared libraries, and then attempts to run an application that was actually linked to a different emulator will give an error about the shared library not found instead of a crash or undefined behavior. We should also make use of this, that is, start to link a versioned library for
cartesi.so
.The text was updated successfully, but these errors were encountered: