Devido ao seguinte bug no Fedora:
Eu decidi compilar minhas próprias versões do zlib e libpng. Mas depois de fazer isso, percebi que o libcairo não poderia vincular a minha nova versão libpng. Algumas investigações mostraram que a razão era que os símbolos no sistema libpng continham a versão do símbolo, por exemplo:
readelf -Ws /usr/lib/libpng16.so.16.6.0 | awk '{print $8}' | grep -i version
png_access_version_number@@PNG16_0
png_get_header_version@@PNG16_0
mas na minha versão compilada os símbolos contêm a decoração da versão:
> readelf -Ws /usr/local/lib/libpng16.so.16.6.0 | awk '{print $8}' | grep -i version
png_get_header_version
png_user_version_check
png_access_version_number
Como posso fazer o cmake, o compilador e o linker gerarem essas anotações de símbolos?