Scoperunner needs to be versioned using SOVERSION
Bug #1302656 reported by
Michal Hruby
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
unity-scopes-api (Ubuntu) |
Confirmed
|
High
|
Unassigned |
Bug Description
If we want to provide compatibility with scopes compiled against older versions of the library, we need to properly version also scoperunner, not just the library itself. Otherwise the runner would link against latest version of libunity-scopes and the loaded .so against an older version, and things would be pretty likely to blow up.
Related branches
lp:~michihenning/unity-scopes-api/add-version-to-create-function-name
Superseded
for merging
into
lp:unity-scopes-api/devel
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
- Unity Team: Pending requested
-
Diff: 797 lines (+51/-215)42 files modifieddemo/click/scope-click/scope-click.cpp (+1/-4)
demo/scopes/scope-A/CMakeLists.txt (+2/-1)
demo/scopes/scope-A/scope-A.cpp (+1/-2)
demo/scopes/scope-A/scope-A.map.in (+1/-1)
demo/scopes/scope-B/scope-B.cpp (+1/-3)
demo/scopes/scope-C/scope-C.cpp (+1/-2)
demo/scopes/scope-D/scope-D.cpp (+1/-2)
demo/scopes/scope-N/scope-N.cpp (+1/-2)
demo/scopes/scope-S/scope-S.cpp (+1/-2)
include/unity/scopes/CMakeLists.txt (+3/-0)
include/unity/scopes/ScopeBase.h.in (+6/-13)
include/unity/scopes/testing/TypedScopeFixture.h (+1/-2)
src/scopes/internal/ScopeLoader.cpp (+1/-17)
test/gtest/scopes/Activation/TestScope.h (+1/-4)
test/gtest/scopes/Filters/TestScope.h (+1/-5)
test/gtest/scopes/IdleShutdown/SlowSearchScope.cpp (+1/-2)
test/gtest/scopes/IdleShutdown/SlowSearchScope.h (+1/-1)
test/gtest/scopes/Invocation/EmptyScope.cpp (+1/-2)
test/gtest/scopes/Invocation/EmptyScope.h (+1/-1)
test/gtest/scopes/Invocation/TestScope.cpp (+1/-2)
test/gtest/scopes/Invocation/TestScope.h (+1/-1)
test/gtest/scopes/Registry/scopes/testscopeA/testscopeA.cpp (+1/-4)
test/gtest/scopes/Registry/scopes/testscopeB/testscopeB.cpp (+1/-4)
test/gtest/scopes/Runtime/PusherScope.cpp (+1/-2)
test/gtest/scopes/Runtime/PusherScope.h (+1/-1)
test/gtest/scopes/Runtime/SlowCreateScope.cpp (+1/-2)
test/gtest/scopes/Runtime/SlowCreateScope.h (+1/-1)
test/gtest/scopes/Runtime/TestScope.cpp (+1/-2)
test/gtest/scopes/Runtime/TestScope.h (+1/-1)
test/gtest/scopes/ScopeBase/scopelib.cpp (+1/-5)
test/gtest/scopes/internal/ScopeLoader/BadVersion.cpp (+0/-81)
test/gtest/scopes/internal/ScopeLoader/CMakeLists.txt (+0/-1)
test/gtest/scopes/internal/ScopeLoader/MyScope.h (+1/-2)
test/gtest/scopes/internal/ScopeLoader/ScopeA.cpp (+1/-2)
test/gtest/scopes/internal/ScopeLoader/ScopeB.cpp (+1/-2)
test/gtest/scopes/internal/ScopeLoader/ScopeLoader_test.cpp (+4/-28)
test/gtest/scopes/internal/ScopeLoader/ThrowUnityExFromStart.cpp (+1/-1)
test/gtest/scopes/internal/ScopeLoader/ThrowUnknownExFromStart.cpp (+1/-1)
test/gtest/scopes/testing/IsolatedScope/scope.cpp (+1/-2)
test/gtest/scopes/testing/IsolatedScope/scope.h (+1/-1)
test/gtest/scopes/testing/IsolatedScopeBenchmark/scope.cpp (+1/-2)
test/gtest/scopes/testing/IsolatedScopeBenchmark/scope.h (+1/-1)
Changed in unity-scopes-api: | |
assignee: | nobody → Michi Henning (michihenning) |
affects: | unity-scopes-api → unity-scopes-api (Ubuntu) |
Changed in unity-scopes-api (Ubuntu): | |
assignee: | Michi Henning (michihenning) → nobody |
To post a comment you must log in.
There is a little more to it than just including ABI version in the scope runner executable name: the registry would also need to know which scope runner each scope needed (since we'd need to run the version of scoperunner that matched the library version the scope was linked against).
This could be done via the ScopeRunner configuration field Pawel added, but I'm not sure what it should be set to exactly.
Another alternative would be to encode the ABI version in the scope's shared library name.