Skip to content

Some symbols in libprotobuf's public API are hidden #12932

@coryan

Description

@coryan

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

Metadata

Metadata

Assignees

Labels

c++inactiveDenotes the issue/PR has not seen activity in the last 90 days.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions