Unverified Commit 46e52862 authored by Connor Baker's avatar Connor Baker Committed by GitHub
Browse files

Merge pull request #250639 from SomeoneSerge/autoaddopenglrunpath

cudaPackages.autoAddOpenGLRunpathHook: don't skip shared libraries
parents 50097d75 065f90d2
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -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