Merge pull request #250639 from SomeoneSerge/autoaddopenglrunpath

cudaPackages.autoAddOpenGLRunpathHook: don't skip shared libraries
This commit is contained in:
Connor Baker 2023-08-21 20:54:54 -04:00 committed by GitHub
commit 46e52862ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,17 +2,21 @@
# Run addOpenGLRunpath on all dynamically linked, ELF files
echo "Sourcing auto-add-opengl-runpath-hook"
elfHasDynamicSection() {
patchelf --print-rpath "$1" >& /dev/null
}
autoAddOpenGLRunpathPhase() (
local outputPaths
mapfile -t outputPaths < <(for o in $(getAllOutputNames); do echo "${!o}"; done)
find "${outputPaths[@]}" -type f -executable -print0 | while IFS= read -rd "" f; do
if isELF "$f"; then
# patchelf returns an error on statically linked ELF files
if patchelf --print-interpreter "$f" >/dev/null 2>&1; then
if elfHasDynamicSection "$f" ; then
echo "autoAddOpenGLRunpathHook: patching $f"
addOpenGLRunpath "$f"
elif [ -n "${DEBUG-}" ]; then
echo "autoAddOpenGLRunpathHook: skipping ELF file $f"
elif (( "${NIX_DEBUG:-0}" >= 1 )) ; then
echo "autoAddOpenGLRunpathHook: skipping a statically-linked ELF file $f"
fi
fi
done