-
-
Notifications
You must be signed in to change notification settings - Fork 9
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
Add target libraries/executables to executable's RPATH #18
Conversation
…nda-forge-pinning 2024.11.01.21.49.52
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
d683153
to
f3f7620
Compare
f3f7620
to
aeb04ec
Compare
Seeing a few warnings on CI. In general they look like this
Can we take a closer look at RPATH patching here to make sure we are addressing this case? |
Apparently this is a side effect of using RPATH in our libs. I see similar warning in cuda-nvtx and others. As long as we have a symlink in $PREFIX/lib it seems to behave OK. Example: From the actual location,
But from $PREFIX/lib where the symlinks are,
I see parallels with cuda-nvtx which has the RPATH fix.
From the actual location,
From $PREFIX/lib, they point to the symlink destination under /home/bsuh/miniforge3/envs/conda-test/lib/
We go by the expectation that libraries are correctly loaded only from $PREFIX/lib, so I believe this is OK. When I look at the WARNINGs closely, during conda build, DSO libs are being tested with their actual location e.g. **cuda-nvtx,targets/x86_64-linux/lib/**libnvToolsExt.so.1.0.0, **compute-sanitizer/**libInterceptorInjectionTarget.so |
In the last build on
So it seemed to pick up the dependency before. Maybe it is worth seeing if there is some change we made here that is affecting the result |
… DSO folder is at same level as $PREIFIX/lib
…nda-forge-pinning 2024.11.12.14.24.54
Thanks for the catch! The main branch has This is unlike other feedstocks where DSOs are under In hindsight, |
…able as this could be part of CUDA with many other libs such that it may find useful to search in $ORIGIN/../${targetsDir}/lib
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Billy! 🙏
Agree the approach above sounds reasonable given the different structure in this feedstock
Had a couple minor suggestions below
Co-authored-by: jakirkham <jakirkham@gmail.com>
Co-authored-by: jakirkham <jakirkham@gmail.com>
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( I do have some suggestions for making it better though... For recipe/meta.yaml:
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12171281242. Examine the logs at this URL for more detail. |
…c ones for generalization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Billy! 🙏
Checklist
0
(if the version changed)conda-smithy
(Use the phrase@conda-forge-admin, please rerender
in a comment in this PR for automated rerendering)xref: conda-forge/cuda-feedstock#10
We're patching both DSO and executables in this feedstock.
patchelf --force-rpath --set-rpath $ORIGIN/../lib:$ORIGIN/../targets/x86_64-linux/lib $PREFIX/compute-sanitizer/compute-sanitizer
patchelf --force-rpath --set-rpath $ORIGIN/../lib:$ORIGIN/../targets/x86_64-linux/lib $PREFIX/compute-sanitizer/TreeLauncherSubreaper
patchelf --force-rpath --set-rpath $ORIGIN/../lib:$ORIGIN/../targets/x86_64-linux/lib $PREFIX/compute-sanitizer/TreeLauncherTargetLdPreloadHelper
patchelf --force-rpath --set-rpath $ORIGIN $PREFIX/compute-sanitizer/libInterceptorInjectionTarget.so
patchelf --force-rpath --set-rpath $ORIGIN $PREFIX/compute-sanitizer/libsanitizer-collection.so
patchelf --force-rpath --set-rpath $ORIGIN $PREFIX/compute-sanitizer/libsanitizer-public.so
patchelf --force-rpath --set-rpath $ORIGIN $PREFIX/compute-sanitizer/libTreeLauncherPlaceholder.so
patchelf --force-rpath --set-rpath $ORIGIN $PREFIX/compute-sanitizer/libTreeLauncherTargetInjection.so
patchelf --force-rpath --set-rpath $ORIGIN $PREFIX/compute-sanitizer/libTreeLauncherTargetUpdatePreloadInjection.so