libstdc++.so.7

Paweł Sikora pluto at agmk.net
Fri Mar 2 19:26:46 CET 2012


witam,

wraz z nadchodzacym gcc-4.7 chcialbym wlaczyc pelne wersjonowanie symboli w libstdc++.so
tak jak ma to miejsce od lat w glibc. dzieki temu biblioteka standardowa w roznych
przestrzeniach nazw i wersjach eksportuje symbole dla roznych wersji standardu c++.
taki kompilat moze obslugiwac aplikacje korzystajace z roznych wersji c++,
ktore maja rozne abi (98 vs. 0x), a w bliskiej przyszlosci (0x vs 11) znow
moga sie rozjechac.

od strony legacy-code nic nie trzeba robic. naglowki libstdc++ wciagaja do przestrzeni
std:: detale implementacji (np. std::__7::), kod uzytkownika kompiluje sie bez zmian
i linkuje juz z wersjonowanym symbolem. obecne libstdc++.so.6 trzeba dodac do compat-libs
a pakiety w distro sie przebuduja z .so.7 przy najblizszej aktualizacji,
tak wiec odpada nam massive-rebuild.

wersjonowane .so.7 ma jeszcze jedna zalete dla osob uzywajacych pld do produkcji
softu dla enterprajsow - aplikacja zlinkowana z .so.7 nie bedzie juz podatna na nadpisanie
symboli c++ przez ld_preload. pluginy .so dla softu firm trzecich moga byc bez obaw otwierane
przez dlopen() w aplikacji nadrzednej i tez nie dojdzie do nadpisania symboli.

uzywam tego od kilku miesiecy w prywatnym jak narazie toolchain-ie, ale chce
to popchnac do glownej linii dla szerszego ogolu :)



More information about the pld-devel-pl mailing list