What version of protobuf and what language are you using?
Version: 23.2
Language: C++
What operating system (Linux, Windows, ...) and version?
Linux, Fedora 37. Probably applies to all Linux variants and
What runtime / compiler are you using (e.g., python version or gcc version)
GCC 12.2
What did you do?
This was motivated by conda-forge/protobuf-feedstock#191 (comment). It seems the "c++ backend" for Python is not loadable when compiled as a .so. Maybe because some symbols are hidden:
conda-forge/protobuf-feedstock#191 (comment)
What did you expect to see
I expect that public symbols are not hidden. google::protobuf::io::SafeDoubleToFloat(double) seems like a public symbol. I would have expected it to be exported.
What did you see instead?
The symbol is hidden:
nm /usr/local/lib64/libprotobuf.so.23.2.0 | c++filt | grep SafeDoubleToFloat
000000000018f350 t google::protobuf::io::SafeDoubleToFloat(double)
Anything else we should know about your project / environment
N/A
This reminds me of: #12618
What version of protobuf and what language are you using?
Version: 23.2
Language: C++
What operating system (Linux, Windows, ...) and version?
Linux, Fedora 37. Probably applies to all Linux variants and
What runtime / compiler are you using (e.g., python version or gcc version)
GCC 12.2
What did you do?
This was motivated by conda-forge/protobuf-feedstock#191 (comment). It seems the "c++ backend" for Python is not loadable when compiled as a .so. Maybe because some symbols are hidden:
conda-forge/protobuf-feedstock#191 (comment)
What did you expect to see
I expect that public symbols are not hidden.
google::protobuf::io::SafeDoubleToFloat(double)seems like a public symbol. I would have expected it to be exported.What did you see instead?
The symbol is hidden:
Anything else we should know about your project / environment
N/A
This reminds me of: #12618