-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
[boost] libraries built with dependency on boost::system, which is not included in the manifest #7435
Comments
Is this problem also present with boost/1.77? |
It looks to have been resolved as of boost/1.75:
|
In boost 1.77 The only reason this package builds currently is because the test package is run under the virtual environment, which adds If the package is built with shared libraries, and the test package is run on Linux using only rpaths to find shared libraries, the test package will fail. Eg, modify the test package as follows: if not self.options["boost"].without_locale:
self.run(os.path.join("bin", "locale_exe"), run_environment=False) And run the test package: conan test test_package boost/1.77.0@ -o boost:shared=True The test will fail with
Normally this would work as any shared libraries can be located using the RPATH provided at link time. |
I ran the following command in the lib folder of a shared boost/1.77.0 package:
Output
So it looks like And sure enough, I think the boost sources need to be patched to remove boost_system of the link libraries. |
#7290 removed
boost_system
from the dependency manifest, however some boost libraries are still linked to it. Notably:boost_contract
boost_locale
boost_random
boost_type_erasure
Steps to reproduce
Build the Boost package with shared libraries
Run
An unresolved runtime dependency on
libboost_system
is visible in the output:Expected Results
No runtime dependencies should be added by conan that cannot subsequently be resolved. In addition, the JSON manifest (generated with
--generator json
) should contain all the dependencies necessary to run the package.Actual Results
Linking to one of the above libraries generates an additional dependency on
boost_system
, which is not included in the JSON manifest.Notes
We use a tool to generate deployable packages (eg deb or zip packages) using the JSON manifest to resolve dependencies. As
boost_system
does not appear in the manifest, we get runtime linking errors at deployment time.Workaround
Add an explicit link using CMake
This resolves the runtime linking issue, but not the absence in the manifest.
The text was updated successfully, but these errors were encountered: