cmake: Use linker version scripts (#9545)

Autotools build system already uses linker version scripts since
commit 13d165de9e737cec750a2ab3d1ef68bb3f276c48.

Fixes: #6113
diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake
index 4b967b2..317e4c2 100644
--- a/cmake/libprotoc.cmake
+++ b/cmake/libprotoc.cmake
@@ -131,6 +131,11 @@
 
 add_library(libprotoc ${protobuf_SHARED_OR_STATIC}
   ${libprotoc_files} ${libprotoc_headers} ${libprotoc_rc_files})
+if(protobuf_HAVE_LD_VERSION_SCRIPT)
+  target_link_options(libprotoc PRIVATE -Wl,--version-script=${protobuf_source_dir}/src/libprotoc.map)
+  set_target_properties(libprotoc PROPERTIES
+    LINK_DEPENDS ${protobuf_source_dir}/src/libprotoc.map)
+endif()
 target_link_libraries(libprotoc libprotobuf)
 if(MSVC AND protobuf_BUILD_SHARED_LIBS)
   target_compile_definitions(libprotoc