Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken ABI without soname change #1471

Closed
eli-schwartz opened this issue Dec 11, 2019 · 4 comments
Closed

Broken ABI without soname change #1471

eli-schwartz opened this issue Dec 11, 2019 · 4 comments

Comments

@eli-schwartz
Copy link

Projects linked to libfmt.so.6.0.0 are broken when they try to load libfmt.so.6.1.1 due to the missing symbol: _ZN3fmt2v68internal14sprintf_formatIdEEPcT_RNS1_6bufferIcEENS1_13sprintf_specsE

See e.g. https://bugs.archlinux.org/task/64802

@eli-schwartz
Copy link
Author

Broken by ded1e76 I guess?

@vitaut
Copy link
Contributor

vitaut commented Dec 11, 2019

I've reintroduced sprintf_format in ae7c501 to restore the ABI compatiblity:

$ nm -gU  libfmt.6.dylib  | grep sprintf
0000000000002130 T __ZN3fmt2v68internal14sprintf_formatIdEEPcT_RNS1_6bufferIcEENS1_13sprintf_specsE
0000000000002430 T __ZN3fmt2v68internal14sprintf_formatIeEEPcT_RNS1_6bufferIcEENS1_13sprintf_specsE

Thanks for reporting!

@vitaut vitaut closed this as completed Dec 11, 2019
@eli-schwartz
Copy link
Author

Thanks, I've confirmed the solution on my end by backporting this patch into our fmt package and locally rebuilding/testing it.

I guess it probably makes sense for you to release a hotfix soon, so that the distros which have already upgraded can get this change automatically.

@vitaut
Copy link
Contributor

vitaut commented Dec 11, 2019

Thanks for the confirmation. I do plan to release 6.1.2 which will include this and other fixes shortly.

saraedum added a commit to saraedum/fmt-feedstock that referenced this issue Mar 26, 2020
fmt seems to be quite strict about ABI compatibility, see fmtlib/fmt#1471.
tdegeus pushed a commit to conda-forge/fmt-feedstock that referenced this issue Apr 11, 2020
* Add run_exports

Since fmt is a shared library, we should tell every recipe that builds against it to require a compatible version at runtime.

* MNT: Re-rendered with conda-build 3.19.1, conda-smithy 3.6.15, and conda-forge-pinning 2020.03.24

* Only pin to major version

fmt seems to be quite strict about ABI compatibility, see fmtlib/fmt#1471.

* MNT: Re-rendered with conda-build 3.19.2, conda-smithy 3.6.16, and conda-forge-pinning 2020.04.09

Co-authored-by: conda-forge-linter <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants