Duplicate core libraries linked into individual plugins
Bug #922199 reported by
Sam Spilsbury
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz Core |
Fix Released
|
High
|
Daniel van Vugt |
Bug Description
Plugins get a copy of the core classes CompPoint, CompRect, CompTimer, compiz::window::* duplicated inside them. Obviously this should not happen. The only copy of these classes should be in compiz_core.
TESTCASE:
nm -C lib/compiz/
You will see a lot of type-T symbols that should only be in libcompiz_core.so. In plugins, those symbols should be type 'U' for undefined.
Related branches
lp:~vanvugt/compiz-core/fix-922199
- Compiz Maintainers: Pending requested
-
Diff: 52 lines (+11/-9)3 files modifiedplugins/place/src/constrain-to-workarea/CMakeLists.txt (+1/-4)
plugins/place/src/screen-size-change/CMakeLists.txt (+2/-5)
src/CMakeLists.txt (+8/-0)
Changed in compiz-core: | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
status: | Confirmed → In Progress |
Changed in compiz-core: | |
status: | In Progress → Fix Committed |
To post a comment you must log in.
I think you misunderstand dynamic loading. There is only one address space -- that of the compiz process. All plugins share the same address space.
And if a dynamic library contains static data then that's perfectly safe because the dynamic loader always ensures only one copy of an SO ever gets loaded. It is just reference counted.