Rust dylib 深入探究

2024-08-28

本文探讨了Rust编译器在使用动态链接生成共享对象文件时,关于符号可见性和重定位的处理方式。作者发现,默认情况下,Rust编译器会将大量符号导出,并使用GLOB_DAT重定位,这会影响共享对象的加载时间和运行时性能。作者建议将符号可见性设置为protected,以减少GLOB_DAT重定位的数量,并提高性能。同时,作者还分析了GCC和Clang在处理符号可见性方面的差异,以及GNU ld和LLD在链接时的行为差异,并提出了改进建议。

未分类 动态链接