You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are using a toolchain for cross-compiling as described in https://docs.conan.io/2/examples/cross_build/toolchain_packages.html, with the only notable difference that we have an additional conan package for the cross-compilation sysroot. We use it pretty much the same like the toolchain.
The toolchain and sysroot are referenced in our conan profile for the target as [tool_requires], and the compiler version of the toolchain is given in the settings:
When we receive an updated toolchain from our supplier, we update the arm-toolchain version in the profile (in the tool_requires section), and typically, we then also update the compiler.version. In this case, conan will generate a new package id because of the changed settings, and all conan packages will be rebuilt automatically with the new toolchain as soon as we use the new profile. But if we just update the sysroot (e.g. bump arm-sysroot to 14.0 in order to address vulnerabilities of system libs), conan will re-use existing packages that have been built against the older sysroot, which often doesn't work.
Now we could add a custom setting like sysroot.version (similar to the existing sdk_versions e.g. for iOS), and update it every time we update the sysroot. But I feel this not enough, because it may easily be forgotten to update sysroot.version. Would you rather recommend to somehow add a check for sysroot.version (maybe using profile.py?), or is there some way to reflect tool_requires in the package id? I know this is possible for configurations via tools.info.package_id:confs, but I didn't find any equivalent for tool_requires.
I am using conan 2.2.2 on Ubuntu 20.04.
Have you read the CONTRIBUTING guide?
I've read the CONTRIBUTING guide
The text was updated successfully, but these errors were encountered:
What is your question?
We are using a toolchain for cross-compiling as described in https://docs.conan.io/2/examples/cross_build/toolchain_packages.html, with the only notable difference that we have an additional conan package for the cross-compilation sysroot. We use it pretty much the same like the toolchain.
The toolchain and sysroot are referenced in our conan profile for the target as [tool_requires], and the compiler version of the toolchain is given in the settings:
When we receive an updated toolchain from our supplier, we update the arm-toolchain version in the profile (in the tool_requires section), and typically, we then also update the compiler.version. In this case, conan will generate a new package id because of the changed settings, and all conan packages will be rebuilt automatically with the new toolchain as soon as we use the new profile. But if we just update the sysroot (e.g. bump arm-sysroot to 14.0 in order to address vulnerabilities of system libs), conan will re-use existing packages that have been built against the older sysroot, which often doesn't work.
Now we could add a custom setting like sysroot.version (similar to the existing sdk_versions e.g. for iOS), and update it every time we update the sysroot. But I feel this not enough, because it may easily be forgotten to update sysroot.version. Would you rather recommend to somehow add a check for sysroot.version (maybe using profile.py?), or is there some way to reflect tool_requires in the package id? I know this is possible for configurations via tools.info.package_id:confs, but I didn't find any equivalent for tool_requires.
I am using conan 2.2.2 on Ubuntu 20.04.
Have you read the CONTRIBUTING guide?
The text was updated successfully, but these errors were encountered: