When built using configure/make, libpng obtains symbol versions (set using --version-script linker option from libpng.vers file, which is in turn formed by scripts/vers.out). E.g.,
$ readelf -Wa libpng16.so.16.1.0 | grep png_get_y_offset_microns
<...> png_get_y_offset_microns@@PNG16_0
But if I use cmake instead of configure, libpng.vers is not created, --version-script option for linker is not set and the resulting library has no symbol information. E.g.,
$ readelf -Wa libpng16.so.16.1.0 | grep png_get_y_offset_microns
<...> png_get_y_offset_microns
The libpng CMakeLists.txt does not support version-script. Please use "configure" instead.