2018 Ivannikov Ispras Open Conference (ISPRAS)
In the previous publication , we described a method for minification of a system composed of dynamic modules under the “closed-world” assumption. Although the presented approach is sound in theory, there are complications with reliably using it in practice. Such complications arise from the peculiarities of existing real-world linkers (symbol elimination relies on proper and consistent implementation of the plugin infrastructure and the --gc-sections switch). The above approach is also imprecise in that it keeps more symbols than strictly necessary due to not discriminating between build time only dependencies (from configure tests) and regular ones. This design limitation as well as the reliability issues are addressed in the new approach presented in this paper.