GoogleCloudPlatform / cloud-profiler-python

Stackdriver Profiler Python agent is a tool that continuously gathers CPU usage information from Python applications
Apache License 2.0
28 stars 23 forks source link

googlecloudprofiler breaks other packages which depend on C++ code compiled against a different version of libstdc++ #129

Open danking opened 1 year ago

danking commented 1 year ago

These lines here,

https://github.com/GoogleCloudPlatform/cloud-profiler-python/blob/ea964fc72095ca60492e7e5e1e4a45b01a91eccc/setup.py#L46-L53

statically link this package's native code against the particular version of libstdc++ available at link time. This breaks other packages which have native code and depend on a different version of libstdc++.

It seems reasonable to me to ask your users to have a recent version of libstdc++ and libgcc available. Or perhaps you could publish two packages to PyPI, this one and one that uses a dynamic link?

Thanks!

PS: I discovered this because version 4.0.0 is incompatible with libsass.

punya commented 1 year ago

Would hiding symbols (https://github.com/pypa/auditwheel/issues/125#issuecomment-606775244) also solve the problem?