Skip to content
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

cudaPackages: apply runpath setup hooks to non-executable ELF files #277213

Merged
merged 1 commit into from
Jan 9, 2024

Conversation

danielfullmer
Copy link
Contributor

@danielfullmer danielfullmer commented Dec 28, 2023

Description of changes

This prior PR restored the ability for autoAddOpenGLRunpathHook to be run against shared libraries (which was originally changed by #250639). However, due to the -executable flag in the find command, this only works on shared libraries that also happen to have the executable bit set.

I ran into this issue when attempting to update jetpack-nixos for 23.11, which also uses autoAddOpenGLRunpathHook. At least for the package I have been working on (cudnn), this does not appear to be a problem with the cudnn redist package in nixpkgs, since the .so files have the executable bit set. However, the deb package for cudnn used in jetpack-nixos do not.

CC @SomeoneSerge @ConnorBaker

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@SomeoneSerge
Copy link
Contributor

While we're at it and since we'll trigger a rebuild anyway, there may be some refactorings to consider. Not meaning to hold the PR though.

For one, I'm still unsure if our elfHasDynamicSection does what it says it does. Maybe we could do something more explicit with readelf? The current implementation is:

elfHasDynamicSection() {
    patchelf --print-rpath "$1" >& /dev/null
}

@@ -9,7 +9,7 @@ elfHasDynamicSection() {
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
find "${outputPaths[@]}" -type f -print0 | while IFS= read -rd "" f; do
Copy link
Contributor

@SomeoneSerge SomeoneSerge Dec 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Here the | pipe can be replaced with < <( find ...) just as used in the line above.

  • Also, is -d "" actually correct? I saw people use -d $'\0' with -print0 in other places. No idea how the syntax works but the intent is clear(er)

Copy link
Contributor

@SomeoneSerge SomeoneSerge Dec 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • I also wonder if we should consider adding at least some -iname, just to have fewer reads on average? Like -iname '*.so*' -or -iname '*.dylib*'

Copy link
Contributor

@SomeoneSerge SomeoneSerge Dec 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RE: -iname

Might as well delegate this to the user and add something like ${addDriverRunpath_findArgs-}. A derivation we know is going to scan a ton of files of which very few are matches (that happens) could just set some addDriverRunpath_findArgs = [ "-executable" "-iname" "'*.so'" ]

None of this has to happen in this PR though

Copy link
Contributor

@yannham yannham Jan 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here the | pipe can be replaced with < <( find ...) just as used in the line above.

Funnily, we just had this discussion somewhere else with a colleague about readarray. I didn't get why Nixpkgs uses readarray args < <(some_command), while to me, it's much more idiomatic to do some_command | readarray args (the pipe is more common, it's fewer characters, it doesn't involve a file redirection, etc.).

It turns out the version with | doesn't work because it runs each command in a separate subshell (at least in bash), and commands like readarray and mapfile use bash namerefs to fill the result (here note that outputPaths is passed as a bare symbol), but namerefs don't propagate to parent shell. So, it turns out you can't use | with mapfile or readarray at all to set a variable declared before.

However, it seems it's not the case here. IMHO, the current version with | is simpler and more readable, and I don't see a good reason to imitate the < <( cmd ...) style.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idk it's kind of neither here nor there: we're spawning subshells but we're nonetheless doing the bash loop instead of -exec because we want to invoke bash functions... I'm fine with find ... -exec, and I put up with the while ... done < <( ...) loop for when the iteration body is pure bash (I hate the looks, but I pretend it's idiomatic and don't look). Am I a pessimist if I say we draw the worst from both worlds?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know, it's probably a matter of taste 🙂 the OCamler in me finds reverse application (aka |) left-to-right composition order more readable.

Though I agree that a find -exec would do as well here, and I see your point that piping to a while loop makes it a bit less readable; pipe is probably better for short commands without control-flow.

@SomeoneSerge
Copy link
Contributor

Result of nixpkgs-review pr 277213 --extra-nixpkgs-config '{ cudaSupport = true; cudaCapabilities = [ "8.6" ]; cudaEnableForwardCompat = false; }' run on x86_64-linux 1

369 packages marked as broken and skipped:
  • cudaPackages.autoAddCudaCompatRunpathHook
  • cudaPackages.cudnn_7_4
  • cudaPackages.cudnn_7_4.dev
  • cudaPackages.cudnn_7_4.lib
  • cudaPackages.cudnn_7_4.static
  • cudaPackages.cudnn_7_6
  • cudaPackages.cudnn_7_6.dev
  • cudaPackages.cudnn_7_6.lib
  • cudaPackages.cudnn_7_6.static
  • cudaPackages.cudnn_8_0
  • cudaPackages.cudnn_8_0.dev
  • cudaPackages.cudnn_8_0.lib
  • cudaPackages.cudnn_8_0.static
  • cudaPackages.cudnn_8_1
  • cudaPackages.cudnn_8_1.dev
  • cudaPackages.cudnn_8_1.lib
  • cudaPackages.cudnn_8_1.static
  • cudaPackages.cudnn_8_2
  • cudaPackages.cudnn_8_2.dev
  • cudaPackages.cudnn_8_2.lib
  • cudaPackages.cudnn_8_2.static
  • cudaPackages.cudnn_8_3
  • cudaPackages.cudnn_8_3.dev
  • cudaPackages.cudnn_8_3.lib
  • cudaPackages.cudnn_8_3.static
  • cudaPackages.cudnn_8_4
  • cudaPackages.cudnn_8_4.dev
  • cudaPackages.cudnn_8_4.lib
  • cudaPackages.cudnn_8_4.static
  • cudaPackages.cudnn_8_5
  • cudaPackages.cudnn_8_5.dev
  • cudaPackages.cudnn_8_5.lib
  • cudaPackages.cudnn_8_5.static
  • cudaPackages.cudnn_8_6
  • cudaPackages.cudnn_8_6.dev
  • cudaPackages.cudnn_8_6.lib
  • cudaPackages.cudnn_8_6.static
  • cudaPackages.cudnn_8_7
  • cudaPackages.cudnn_8_7.dev
  • cudaPackages.cudnn_8_7.lib
  • cudaPackages.cudnn_8_7.static
  • cudaPackages.nvidia_driver
  • cudaPackages.nvidia_driver.bin
  • cudaPackages.nvidia_driver.lib
  • cudaPackages.tensorrt_8_0
  • cudaPackages.tensorrt_8_0.bin
  • cudaPackages.tensorrt_8_0.dev
  • cudaPackages.tensorrt_8_0.lib
  • cudaPackages.tensorrt_8_0.python
  • cudaPackages.tensorrt_8_0.sample
  • cudaPackages.tensorrt_8_0.static
  • cudaPackages.tensorrt_8_2
  • cudaPackages.tensorrt_8_2.bin
  • cudaPackages.tensorrt_8_2.dev
  • cudaPackages.tensorrt_8_2.lib
  • cudaPackages.tensorrt_8_2.python
  • cudaPackages.tensorrt_8_2.sample
  • cudaPackages.tensorrt_8_2.static
  • cudaPackages.tensorrt_8_4
  • cudaPackages.tensorrt_8_4.bin
  • cudaPackages.tensorrt_8_4.dev
  • cudaPackages.tensorrt_8_4.lib
  • cudaPackages.tensorrt_8_4.python
  • cudaPackages.tensorrt_8_4.sample
  • cudaPackages.tensorrt_8_4.static
  • cudaPackages.tensorrt_8_5
  • cudaPackages.tensorrt_8_5.bin
  • cudaPackages.tensorrt_8_5.dev
  • cudaPackages.tensorrt_8_5.lib
  • cudaPackages.tensorrt_8_5.python
  • cudaPackages.tensorrt_8_5.sample
  • cudaPackages.tensorrt_8_5.static
  • cudaPackagesGoogle.autoAddCudaCompatRunpathHook
  • cudaPackagesGoogle.cudnn_7_4
  • cudaPackagesGoogle.cudnn_7_4.dev
  • cudaPackagesGoogle.cudnn_7_4.lib
  • cudaPackagesGoogle.cudnn_7_4.static
  • cudaPackagesGoogle.cudnn_7_6
  • cudaPackagesGoogle.cudnn_7_6.dev
  • cudaPackagesGoogle.cudnn_7_6.lib
  • cudaPackagesGoogle.cudnn_7_6.static
  • cudaPackagesGoogle.cudnn_8_0
  • cudaPackagesGoogle.cudnn_8_0.dev
  • cudaPackagesGoogle.cudnn_8_0.lib
  • cudaPackagesGoogle.cudnn_8_0.static
  • cudaPackagesGoogle.cudnn_8_1
  • cudaPackagesGoogle.cudnn_8_1.dev
  • cudaPackagesGoogle.cudnn_8_1.lib
  • cudaPackagesGoogle.cudnn_8_1.static
  • cudaPackagesGoogle.cudnn_8_2
  • cudaPackagesGoogle.cudnn_8_2.dev
  • cudaPackagesGoogle.cudnn_8_2.lib
  • cudaPackagesGoogle.cudnn_8_2.static
  • cudaPackagesGoogle.cudnn_8_3
  • cudaPackagesGoogle.cudnn_8_3.dev
  • cudaPackagesGoogle.cudnn_8_3.lib
  • cudaPackagesGoogle.cudnn_8_3.static
  • cudaPackagesGoogle.cudnn_8_4
  • cudaPackagesGoogle.cudnn_8_4.dev
  • cudaPackagesGoogle.cudnn_8_4.lib
  • cudaPackagesGoogle.cudnn_8_4.static
  • cudaPackagesGoogle.cudnn_8_5
  • cudaPackagesGoogle.cudnn_8_5.dev
  • cudaPackagesGoogle.cudnn_8_5.lib
  • cudaPackagesGoogle.cudnn_8_5.static
  • cudaPackagesGoogle.cudnn_8_6
  • cudaPackagesGoogle.cudnn_8_6.dev
  • cudaPackagesGoogle.cudnn_8_6.lib
  • cudaPackagesGoogle.cudnn_8_6.static
  • cudaPackagesGoogle.cudnn_8_7
  • cudaPackagesGoogle.cudnn_8_7.dev
  • cudaPackagesGoogle.cudnn_8_7.lib
  • cudaPackagesGoogle.cudnn_8_7.static
  • cudaPackagesGoogle.nvidia_driver
  • cudaPackagesGoogle.nvidia_driver.bin
  • cudaPackagesGoogle.nvidia_driver.lib
  • cudaPackagesGoogle.tensorrt_8_0
  • cudaPackagesGoogle.tensorrt_8_0.bin
  • cudaPackagesGoogle.tensorrt_8_0.dev
  • cudaPackagesGoogle.tensorrt_8_0.lib
  • cudaPackagesGoogle.tensorrt_8_0.python
  • cudaPackagesGoogle.tensorrt_8_0.sample
  • cudaPackagesGoogle.tensorrt_8_0.static
  • cudaPackagesGoogle.tensorrt_8_2
  • cudaPackagesGoogle.tensorrt_8_2.bin
  • cudaPackagesGoogle.tensorrt_8_2.dev
  • cudaPackagesGoogle.tensorrt_8_2.lib
  • cudaPackagesGoogle.tensorrt_8_2.python
  • cudaPackagesGoogle.tensorrt_8_2.sample
  • cudaPackagesGoogle.tensorrt_8_2.static
  • cudaPackagesGoogle.tensorrt_8_4
  • cudaPackagesGoogle.tensorrt_8_4.bin
  • cudaPackagesGoogle.tensorrt_8_4.dev
  • cudaPackagesGoogle.tensorrt_8_4.lib
  • cudaPackagesGoogle.tensorrt_8_4.python
  • cudaPackagesGoogle.tensorrt_8_4.sample
  • cudaPackagesGoogle.tensorrt_8_4.static
  • cudaPackagesGoogle.tensorrt_8_5
  • cudaPackagesGoogle.tensorrt_8_5.bin
  • cudaPackagesGoogle.tensorrt_8_5.dev
  • cudaPackagesGoogle.tensorrt_8_5.lib
  • cudaPackagesGoogle.tensorrt_8_5.python
  • cudaPackagesGoogle.tensorrt_8_5.sample
  • cudaPackagesGoogle.tensorrt_8_5.static
  • cudaPackages_10.cudnn
  • cudaPackages_10.cudnn.dev
  • cudaPackages_10.cudnn.lib
  • cudaPackages_10.cudnn.static
  • cudaPackages_10.cudnn_7_4
  • cudaPackages_10.cudnn_7_4.dev
  • cudaPackages_10.cudnn_7_4.lib
  • cudaPackages_10.cudnn_7_4.static
  • cudaPackages_10.cudnn_7_6
  • cudaPackages_10.cudnn_7_6.dev
  • cudaPackages_10.cudnn_7_6.lib
  • cudaPackages_10.cudnn_7_6.static
  • cudaPackages_10.cudnn_8_0
  • cudaPackages_10.cudnn_8_0.dev
  • cudaPackages_10.cudnn_8_0.lib
  • cudaPackages_10.cudnn_8_0.static
  • cudaPackages_10.cudnn_8_8
  • cudaPackages_10.cudnn_8_8.dev
  • cudaPackages_10.cudnn_8_8.lib
  • cudaPackages_10.cudnn_8_8.static
  • cudaPackages_10.cudnn_8_9
  • cudaPackages_10.cudnn_8_9.dev
  • cudaPackages_10.cudnn_8_9.lib
  • cudaPackages_10.cudnn_8_9.static
  • cudaPackages_10.tensorrt
  • cudaPackages_10.tensorrt.bin
  • cudaPackages_10.tensorrt.dev
  • cudaPackages_10.tensorrt.lib
  • cudaPackages_10.tensorrt.python
  • cudaPackages_10.tensorrt.sample
  • cudaPackages_10.tensorrt.static
  • cudaPackages_10.tensorrt_8_0
  • cudaPackages_10.tensorrt_8_0.bin
  • cudaPackages_10.tensorrt_8_0.dev
  • cudaPackages_10.tensorrt_8_0.lib
  • cudaPackages_10.tensorrt_8_0.python
  • cudaPackages_10.tensorrt_8_0.sample
  • cudaPackages_10.tensorrt_8_0.static
  • cudaPackages_10.tensorrt_8_2
  • cudaPackages_10.tensorrt_8_2.bin
  • cudaPackages_10.tensorrt_8_2.dev
  • cudaPackages_10.tensorrt_8_2.lib
  • cudaPackages_10.tensorrt_8_2.python
  • cudaPackages_10.tensorrt_8_2.sample
  • cudaPackages_10.tensorrt_8_2.static
  • cudaPackages_10.tensorrt_8_4
  • cudaPackages_10.tensorrt_8_4.bin
  • cudaPackages_10.tensorrt_8_4.dev
  • cudaPackages_10.tensorrt_8_4.lib
  • cudaPackages_10.tensorrt_8_4.python
  • cudaPackages_10.tensorrt_8_4.sample
  • cudaPackages_10.tensorrt_8_4.static
  • cudaPackages_10.tensorrt_8_5
  • cudaPackages_10.tensorrt_8_5.bin
  • cudaPackages_10.tensorrt_8_5.dev
  • cudaPackages_10.tensorrt_8_5.lib
  • cudaPackages_10.tensorrt_8_5.python
  • cudaPackages_10.tensorrt_8_5.sample
  • cudaPackages_10.tensorrt_8_5.static
  • cudaPackages_10.tensorrt_8_6
  • cudaPackages_10.tensorrt_8_6.bin
  • cudaPackages_10.tensorrt_8_6.dev
  • cudaPackages_10.tensorrt_8_6.lib
  • cudaPackages_10.tensorrt_8_6.python
  • cudaPackages_10.tensorrt_8_6.sample
  • cudaPackages_10.tensorrt_8_6.static
  • cudaPackages_11.autoAddCudaCompatRunpathHook
  • cudaPackages_11.cudnn_7_4
  • cudaPackages_11.cudnn_7_4.dev
  • cudaPackages_11.cudnn_7_4.lib
  • cudaPackages_11.cudnn_7_4.static
  • cudaPackages_11.cudnn_7_6
  • cudaPackages_11.cudnn_7_6.dev
  • cudaPackages_11.cudnn_7_6.lib
  • cudaPackages_11.cudnn_7_6.static
  • cudaPackages_11.cudnn_8_0
  • cudaPackages_11.cudnn_8_0.dev
  • cudaPackages_11.cudnn_8_0.lib
  • cudaPackages_11.cudnn_8_0.static
  • cudaPackages_11.cudnn_8_1
  • cudaPackages_11.cudnn_8_1.dev
  • cudaPackages_11.cudnn_8_1.lib
  • cudaPackages_11.cudnn_8_1.static
  • cudaPackages_11.cudnn_8_2
  • cudaPackages_11.cudnn_8_2.dev
  • cudaPackages_11.cudnn_8_2.lib
  • cudaPackages_11.cudnn_8_2.static
  • cudaPackages_11.cudnn_8_3
  • cudaPackages_11.cudnn_8_3.dev
  • cudaPackages_11.cudnn_8_3.lib
  • cudaPackages_11.cudnn_8_3.static
  • cudaPackages_11.cudnn_8_4
  • cudaPackages_11.cudnn_8_4.dev
  • cudaPackages_11.cudnn_8_4.lib
  • cudaPackages_11.cudnn_8_4.static
  • cudaPackages_11.cudnn_8_5
  • cudaPackages_11.cudnn_8_5.dev
  • cudaPackages_11.cudnn_8_5.lib
  • cudaPackages_11.cudnn_8_5.static
  • cudaPackages_11.cudnn_8_6
  • cudaPackages_11.cudnn_8_6.dev
  • cudaPackages_11.cudnn_8_6.lib
  • cudaPackages_11.cudnn_8_6.static
  • cudaPackages_11.cudnn_8_7
  • cudaPackages_11.cudnn_8_7.dev
  • cudaPackages_11.cudnn_8_7.lib
  • cudaPackages_11.cudnn_8_7.static
  • cudaPackages_11.nvidia_driver
  • cudaPackages_11.nvidia_driver.bin
  • cudaPackages_11.nvidia_driver.lib
  • cudaPackages_11.tensorrt_8_0
  • cudaPackages_11.tensorrt_8_0.bin
  • cudaPackages_11.tensorrt_8_0.dev
  • cudaPackages_11.tensorrt_8_0.lib
  • cudaPackages_11.tensorrt_8_0.python
  • cudaPackages_11.tensorrt_8_0.sample
  • cudaPackages_11.tensorrt_8_0.static
  • cudaPackages_11.tensorrt_8_2
  • cudaPackages_11.tensorrt_8_2.bin
  • cudaPackages_11.tensorrt_8_2.dev
  • cudaPackages_11.tensorrt_8_2.lib
  • cudaPackages_11.tensorrt_8_2.python
  • cudaPackages_11.tensorrt_8_2.sample
  • cudaPackages_11.tensorrt_8_2.static
  • cudaPackages_11.tensorrt_8_4
  • cudaPackages_11.tensorrt_8_4.bin
  • cudaPackages_11.tensorrt_8_4.dev
  • cudaPackages_11.tensorrt_8_4.lib
  • cudaPackages_11.tensorrt_8_4.python
  • cudaPackages_11.tensorrt_8_4.sample
  • cudaPackages_11.tensorrt_8_4.static
  • cudaPackages_11.tensorrt_8_5
  • cudaPackages_11.tensorrt_8_5.bin
  • cudaPackages_11.tensorrt_8_5.dev
  • cudaPackages_11.tensorrt_8_5.lib
  • cudaPackages_11.tensorrt_8_5.python
  • cudaPackages_11.tensorrt_8_5.sample
  • cudaPackages_11.tensorrt_8_5.static
  • cudaPackages_12.autoAddCudaCompatRunpathHook
  • cudaPackages_12.cudnn_7_4
  • cudaPackages_12.cudnn_7_4.dev
  • cudaPackages_12.cudnn_7_4.lib
  • cudaPackages_12.cudnn_7_4.static
  • cudaPackages_12.cudnn_7_6
  • cudaPackages_12.cudnn_7_6.dev
  • cudaPackages_12.cudnn_7_6.lib
  • cudaPackages_12.cudnn_7_6.static
  • cudaPackages_12.cudnn_8_0
  • cudaPackages_12.cudnn_8_0.dev
  • cudaPackages_12.cudnn_8_0.lib
  • cudaPackages_12.cudnn_8_0.static
  • cudaPackages_12.cudnn_8_1
  • cudaPackages_12.cudnn_8_1.dev
  • cudaPackages_12.cudnn_8_1.lib
  • cudaPackages_12.cudnn_8_1.static
  • cudaPackages_12.cudnn_8_2
  • cudaPackages_12.cudnn_8_2.dev
  • cudaPackages_12.cudnn_8_2.lib
  • cudaPackages_12.cudnn_8_2.static
  • cudaPackages_12.cudnn_8_3
  • cudaPackages_12.cudnn_8_3.dev
  • cudaPackages_12.cudnn_8_3.lib
  • cudaPackages_12.cudnn_8_3.static
  • cudaPackages_12.cudnn_8_4
  • cudaPackages_12.cudnn_8_4.dev
  • cudaPackages_12.cudnn_8_4.lib
  • cudaPackages_12.cudnn_8_4.static
  • cudaPackages_12.cudnn_8_5
  • cudaPackages_12.cudnn_8_5.dev
  • cudaPackages_12.cudnn_8_5.lib
  • cudaPackages_12.cudnn_8_5.static
  • cudaPackages_12.cudnn_8_6
  • cudaPackages_12.cudnn_8_6.dev
  • cudaPackages_12.cudnn_8_6.lib
  • cudaPackages_12.cudnn_8_6.static
  • cudaPackages_12.cudnn_8_7
  • cudaPackages_12.cudnn_8_7.dev
  • cudaPackages_12.cudnn_8_7.lib
  • cudaPackages_12.cudnn_8_7.static
  • cudaPackages_12.cudnn_8_8
  • cudaPackages_12.cudnn_8_8.dev
  • cudaPackages_12.cudnn_8_8.lib
  • cudaPackages_12.cudnn_8_8.static
  • cudaPackages_12.cudnn_8_9
  • cudaPackages_12.cudnn_8_9.dev
  • cudaPackages_12.cudnn_8_9.lib
  • cudaPackages_12.cudnn_8_9.static
  • cudaPackages_12.nvidia_driver
  • cudaPackages_12.nvidia_driver.bin
  • cudaPackages_12.nvidia_driver.lib
  • cudaPackages_12.tensorrt_8_0
  • cudaPackages_12.tensorrt_8_0.bin
  • cudaPackages_12.tensorrt_8_0.dev
  • cudaPackages_12.tensorrt_8_0.lib
  • cudaPackages_12.tensorrt_8_0.python
  • cudaPackages_12.tensorrt_8_0.sample
  • cudaPackages_12.tensorrt_8_0.static
  • cudaPackages_12.tensorrt_8_2
  • cudaPackages_12.tensorrt_8_2.bin
  • cudaPackages_12.tensorrt_8_2.dev
  • cudaPackages_12.tensorrt_8_2.lib
  • cudaPackages_12.tensorrt_8_2.python
  • cudaPackages_12.tensorrt_8_2.sample
  • cudaPackages_12.tensorrt_8_2.static
  • cudaPackages_12.tensorrt_8_4
  • cudaPackages_12.tensorrt_8_4.bin
  • cudaPackages_12.tensorrt_8_4.dev
  • cudaPackages_12.tensorrt_8_4.lib
  • cudaPackages_12.tensorrt_8_4.python
  • cudaPackages_12.tensorrt_8_4.sample
  • cudaPackages_12.tensorrt_8_4.static
  • cudaPackages_12.tensorrt_8_5
  • cudaPackages_12.tensorrt_8_5.bin
  • cudaPackages_12.tensorrt_8_5.dev
  • cudaPackages_12.tensorrt_8_5.lib
  • cudaPackages_12.tensorrt_8_5.python
  • cudaPackages_12.tensorrt_8_5.sample
  • cudaPackages_12.tensorrt_8_5.static
  • cudaPackages_12.tensorrt_8_6
  • cudaPackages_12.tensorrt_8_6.bin
  • cudaPackages_12.tensorrt_8_6.dev
  • cudaPackages_12.tensorrt_8_6.lib
  • cudaPackages_12.tensorrt_8_6.python
  • cudaPackages_12.tensorrt_8_6.sample
  • cudaPackages_12.tensorrt_8_6.static
13 packages failed to build:
  • cudaPackages.nsight_systems (cudaPackages.nsight_systems.bin ,cudaPackagesGoogle.nsight_systems ,cudaPackagesGoogle.nsight_systems.bin ,cudaPackages_11.nsight_systems ,cudaPackages_11.nsight_systems.bin)
  • cudaPackages.tensorrt (cudaPackages.tensorrt.bin ,cudaPackages.tensorrt.dev ,cudaPackages.tensorrt.lib ,cudaPackages.tensorrt.python ,cudaPackages.tensorrt.sample ,cudaPackages.tensorrt.static ,cudaPackages.tensorrt_8_6 ,cudaPackages.tensorrt_8_6.bin ,cudaPackages.tensorrt_8_6.dev ,cudaPackages.tensorrt_8_6.lib ,cudaPackages.tensorrt_8_6.python ,cudaPackages.tensorrt_8_6.sample ,cudaPackages.tensorrt_8_6.static ,cudaPackagesGoogle.tensorrt ,cudaPackagesGoogle.tensorrt.bin ,cudaPackagesGoogle.tensorrt.dev ,cudaPackagesGoogle.tensorrt.lib ,cudaPackagesGoogle.tensorrt.python ,cudaPackagesGoogle.tensorrt.sample ,cudaPackagesGoogle.tensorrt.static ,cudaPackagesGoogle.tensorrt_8_6 ,cudaPackagesGoogle.tensorrt_8_6.bin ,cudaPackagesGoogle.tensorrt_8_6.dev ,cudaPackagesGoogle.tensorrt_8_6.lib ,cudaPackagesGoogle.tensorrt_8_6.python ,cudaPackagesGoogle.tensorrt_8_6.sample ,cudaPackagesGoogle.tensorrt_8_6.static ,cudaPackages_11.tensorrt ,cudaPackages_11.tensorrt.bin ,cudaPackages_11.tensorrt.dev ,cudaPackages_11.tensorrt.lib ,cudaPackages_11.tensorrt.python ,cudaPackages_11.tensorrt.sample ,cudaPackages_11.tensorrt.static ,cudaPackages_11.tensorrt_8_6 ,cudaPackages_11.tensorrt_8_6.bin ,cudaPackages_11.tensorrt_8_6.dev ,cudaPackages_11.tensorrt_8_6.lib ,cudaPackages_11.tensorrt_8_6.python ,cudaPackages_11.tensorrt_8_6.sample ,cudaPackages_11.tensorrt_8_6.static)
  • cudaPackages_10.cuda-samples
  • cudaPackages_10.nccl
  • cudaPackages_10.nccl-tests
  • cudaPackages_10.nccl.dev
  • cudaPackages_12.cuda-samples
  • cudaPackages_12.cutensor_1_3 (cudaPackages_12.cutensor_1_3.dev ,cudaPackages_12.cutensor_1_3.lib ,cudaPackages_12.cutensor_1_3.static)
  • cudaPackages_12.cutensor_1_4 (cudaPackages_12.cutensor_1_4.dev ,cudaPackages_12.cutensor_1_4.lib ,cudaPackages_12.cutensor_1_4.static)
  • cudaPackages_12.cutensor_1_5 (cudaPackages_12.cutensor_1_5.dev ,cudaPackages_12.cutensor_1_5.lib ,cudaPackages_12.cutensor_1_5.static)
  • cudaPackages_12.nsight_compute (cudaPackages_12.nsight_compute.bin)
  • cudaPackages_12.nsight_systems (cudaPackages_12.nsight_systems.bin)
  • cudaPackages_12.tensorrt (cudaPackages_12.tensorrt.bin ,cudaPackages_12.tensorrt.dev ,cudaPackages_12.tensorrt.lib ,cudaPackages_12.tensorrt.python ,cudaPackages_12.tensorrt.sample ,cudaPackages_12.tensorrt.static)
106 packages built:
  • cudaPackages.autoAddOpenGLRunpathHook (cudaPackagesGoogle.autoAddOpenGLRunpathHook ,cudaPackages_10.autoAddOpenGLRunpathHook ,cudaPackages_11.autoAddOpenGLRunpathHook ,cudaPackages_12.autoAddOpenGLRunpathHook)
  • cudaPackages.cuda-samples (cudaPackagesGoogle.cuda-samples ,cudaPackages_11.cuda-samples)
  • cudaPackages.cuda_cccl (cudaPackages.cuda_cccl.dev ,cudaPackagesGoogle.cuda_cccl ,cudaPackagesGoogle.cuda_cccl.dev ,cudaPackages_11.cuda_cccl ,cudaPackages_11.cuda_cccl.dev)
  • cudaPackages.cuda_cudart (cudaPackages.cuda_cudart.dev ,cudaPackages.cuda_cudart.lib ,cudaPackages.cuda_cudart.static ,cudaPackagesGoogle.cuda_cudart ,cudaPackagesGoogle.cuda_cudart.dev ,cudaPackagesGoogle.cuda_cudart.lib ,cudaPackagesGoogle.cuda_cudart.static ,cudaPackages_11.cuda_cudart ,cudaPackages_11.cuda_cudart.dev ,cudaPackages_11.cuda_cudart.lib ,cudaPackages_11.cuda_cudart.static)
  • cudaPackages.cuda_cuobjdump (cudaPackages.cuda_cuobjdump.bin ,cudaPackagesGoogle.cuda_cuobjdump ,cudaPackagesGoogle.cuda_cuobjdump.bin ,cudaPackages_11.cuda_cuobjdump ,cudaPackages_11.cuda_cuobjdump.bin)
  • cudaPackages.cuda_cupti (cudaPackages.cuda_cupti.dev ,cudaPackages.cuda_cupti.lib ,cudaPackages.cuda_cupti.sample ,cudaPackages.cuda_cupti.static ,cudaPackagesGoogle.cuda_cupti ,cudaPackagesGoogle.cuda_cupti.dev ,cudaPackagesGoogle.cuda_cupti.lib ,cudaPackagesGoogle.cuda_cupti.sample ,cudaPackagesGoogle.cuda_cupti.static ,cudaPackages_11.cuda_cupti ,cudaPackages_11.cuda_cupti.dev ,cudaPackages_11.cuda_cupti.lib ,cudaPackages_11.cuda_cupti.sample ,cudaPackages_11.cuda_cupti.static)
  • cudaPackages.cuda_cuxxfilt (cudaPackages.cuda_cuxxfilt.bin ,cudaPackages.cuda_cuxxfilt.dev ,cudaPackages.cuda_cuxxfilt.static ,cudaPackagesGoogle.cuda_cuxxfilt ,cudaPackagesGoogle.cuda_cuxxfilt.bin ,cudaPackagesGoogle.cuda_cuxxfilt.dev ,cudaPackagesGoogle.cuda_cuxxfilt.static ,cudaPackages_11.cuda_cuxxfilt ,cudaPackages_11.cuda_cuxxfilt.bin ,cudaPackages_11.cuda_cuxxfilt.dev ,cudaPackages_11.cuda_cuxxfilt.static)
  • cudaPackages.cuda_demo_suite (cudaPackagesGoogle.cuda_demo_suite ,cudaPackages_11.cuda_demo_suite)
  • cudaPackages.cuda_documentation (cudaPackagesGoogle.cuda_documentation ,cudaPackages_11.cuda_documentation)
  • cudaPackages.cuda_gdb (cudaPackages.cuda_gdb.bin ,cudaPackagesGoogle.cuda_gdb ,cudaPackagesGoogle.cuda_gdb.bin ,cudaPackages_11.cuda_gdb ,cudaPackages_11.cuda_gdb.bin)
  • cudaPackages.cuda_memcheck (cudaPackages.cuda_memcheck.bin ,cudaPackagesGoogle.cuda_memcheck ,cudaPackagesGoogle.cuda_memcheck.bin ,cudaPackages_11.cuda_memcheck ,cudaPackages_11.cuda_memcheck.bin)
  • cudaPackages.cuda_nsight (cudaPackages.cuda_nsight.bin ,cudaPackagesGoogle.cuda_nsight ,cudaPackagesGoogle.cuda_nsight.bin ,cudaPackages_11.cuda_nsight ,cudaPackages_11.cuda_nsight.bin)
  • cudaPackages.cuda_nvcc (cudaPackages.cuda_nvcc.bin ,cudaPackages.cuda_nvcc.dev ,cudaPackages.cuda_nvcc.lib ,cudaPackages.cuda_nvcc.static ,cudaPackagesGoogle.cuda_nvcc ,cudaPackagesGoogle.cuda_nvcc.bin ,cudaPackagesGoogle.cuda_nvcc.dev ,cudaPackagesGoogle.cuda_nvcc.lib ,cudaPackagesGoogle.cuda_nvcc.static ,cudaPackages_11.cuda_nvcc ,cudaPackages_11.cuda_nvcc.bin ,cudaPackages_11.cuda_nvcc.dev ,cudaPackages_11.cuda_nvcc.lib ,cudaPackages_11.cuda_nvcc.static)
  • cudaPackages.cuda_nvdisasm (cudaPackages.cuda_nvdisasm.bin ,cudaPackagesGoogle.cuda_nvdisasm ,cudaPackagesGoogle.cuda_nvdisasm.bin ,cudaPackages_11.cuda_nvdisasm ,cudaPackages_11.cuda_nvdisasm.bin)
  • cudaPackages.cuda_nvml_dev (cudaPackages.cuda_nvml_dev.dev ,cudaPackages.cuda_nvml_dev.lib ,cudaPackagesGoogle.cuda_nvml_dev ,cudaPackagesGoogle.cuda_nvml_dev.dev ,cudaPackagesGoogle.cuda_nvml_dev.lib ,cudaPackages_11.cuda_nvml_dev ,cudaPackages_11.cuda_nvml_dev.dev ,cudaPackages_11.cuda_nvml_dev.lib)
  • cudaPackages.cuda_nvprof (cudaPackages.cuda_nvprof.bin ,cudaPackages.cuda_nvprof.lib ,cudaPackagesGoogle.cuda_nvprof ,cudaPackagesGoogle.cuda_nvprof.bin ,cudaPackagesGoogle.cuda_nvprof.lib ,cudaPackages_11.cuda_nvprof ,cudaPackages_11.cuda_nvprof.bin ,cudaPackages_11.cuda_nvprof.lib)
  • cudaPackages.cuda_nvprune (cudaPackages.cuda_nvprune.bin ,cudaPackagesGoogle.cuda_nvprune ,cudaPackagesGoogle.cuda_nvprune.bin ,cudaPackages_11.cuda_nvprune ,cudaPackages_11.cuda_nvprune.bin)
  • cudaPackages.cuda_nvrtc (cudaPackages.cuda_nvrtc.dev ,cudaPackages.cuda_nvrtc.lib ,cudaPackages.cuda_nvrtc.static ,cudaPackagesGoogle.cuda_nvrtc ,cudaPackagesGoogle.cuda_nvrtc.dev ,cudaPackagesGoogle.cuda_nvrtc.lib ,cudaPackagesGoogle.cuda_nvrtc.static ,cudaPackages_11.cuda_nvrtc ,cudaPackages_11.cuda_nvrtc.dev ,cudaPackages_11.cuda_nvrtc.lib ,cudaPackages_11.cuda_nvrtc.static)
  • cudaPackages.cuda_nvtx (cudaPackages.cuda_nvtx.dev ,cudaPackages.cuda_nvtx.lib ,cudaPackagesGoogle.cuda_nvtx ,cudaPackagesGoogle.cuda_nvtx.dev ,cudaPackagesGoogle.cuda_nvtx.lib ,cudaPackages_11.cuda_nvtx ,cudaPackages_11.cuda_nvtx.dev ,cudaPackages_11.cuda_nvtx.lib)
  • cudaPackages.cuda_nvvp (cudaPackages.cuda_nvvp.bin ,cudaPackagesGoogle.cuda_nvvp ,cudaPackagesGoogle.cuda_nvvp.bin ,cudaPackages_11.cuda_nvvp ,cudaPackages_11.cuda_nvvp.bin)
  • cudaPackages.cuda_profiler_api (cudaPackages.cuda_profiler_api.dev ,cudaPackagesGoogle.cuda_profiler_api ,cudaPackagesGoogle.cuda_profiler_api.dev ,cudaPackages_11.cuda_profiler_api ,cudaPackages_11.cuda_profiler_api.dev)
  • cudaPackages.cuda_sanitizer_api (cudaPackages.cuda_sanitizer_api.bin ,cudaPackagesGoogle.cuda_sanitizer_api ,cudaPackagesGoogle.cuda_sanitizer_api.bin ,cudaPackages_11.cuda_sanitizer_api ,cudaPackages_11.cuda_sanitizer_api.bin)
  • cudaPackages.cudatoolkit (cudaPackagesGoogle.cudatoolkit ,cudaPackages_11.cudatoolkit)
  • cudaPackages.cudatoolkit.doc (cudaPackagesGoogle.cudatoolkit.doc ,cudaPackages_11.cudatoolkit.doc)
  • cudaPackages.cudatoolkit.lib (cudaPackagesGoogle.cudatoolkit.lib ,cudaPackages_11.cudatoolkit.lib)
  • cudaPackages.cudnn (cudaPackages.cudnn.dev ,cudaPackages.cudnn.lib ,cudaPackages.cudnn.static ,cudaPackages.cudnn_8_9 ,cudaPackages.cudnn_8_9.dev ,cudaPackages.cudnn_8_9.lib ,cudaPackages.cudnn_8_9.static ,cudaPackagesGoogle.cudnn ,cudaPackagesGoogle.cudnn.dev ,cudaPackagesGoogle.cudnn.lib ,cudaPackagesGoogle.cudnn.static ,cudaPackagesGoogle.cudnn_8_9 ,cudaPackagesGoogle.cudnn_8_9.dev ,cudaPackagesGoogle.cudnn_8_9.lib ,cudaPackagesGoogle.cudnn_8_9.static ,cudaPackages_11.cudnn ,cudaPackages_11.cudnn.dev ,cudaPackages_11.cudnn.lib ,cudaPackages_11.cudnn.static ,cudaPackages_11.cudnn_8_9 ,cudaPackages_11.cudnn_8_9.dev ,cudaPackages_11.cudnn_8_9.lib ,cudaPackages_11.cudnn_8_9.static)
  • cudaPackages.cudnn_8_8 (cudaPackages.cudnn_8_8.dev ,cudaPackages.cudnn_8_8.lib ,cudaPackages.cudnn_8_8.static ,cudaPackagesGoogle.cudnn_8_8 ,cudaPackagesGoogle.cudnn_8_8.dev ,cudaPackagesGoogle.cudnn_8_8.lib ,cudaPackagesGoogle.cudnn_8_8.static ,cudaPackages_11.cudnn_8_8 ,cudaPackages_11.cudnn_8_8.dev ,cudaPackages_11.cudnn_8_8.lib ,cudaPackages_11.cudnn_8_8.static)
  • cudaPackages.cutensor (cudaPackages.cutensor.dev ,cudaPackages.cutensor.lib ,cudaPackages.cutensor.static ,cudaPackages.cutensor_1_7 ,cudaPackages.cutensor_1_7.dev ,cudaPackages.cutensor_1_7.lib ,cudaPackages.cutensor_1_7.static ,cudaPackagesGoogle.cutensor ,cudaPackagesGoogle.cutensor.dev ,cudaPackagesGoogle.cutensor.lib ,cudaPackagesGoogle.cutensor.static ,cudaPackagesGoogle.cutensor_1_7 ,cudaPackagesGoogle.cutensor_1_7.dev ,cudaPackagesGoogle.cutensor_1_7.lib ,cudaPackagesGoogle.cutensor_1_7.static ,cudaPackages_11.cutensor ,cudaPackages_11.cutensor.dev ,cudaPackages_11.cutensor.lib ,cudaPackages_11.cutensor.static ,cudaPackages_11.cutensor_1_7 ,cudaPackages_11.cutensor_1_7.dev ,cudaPackages_11.cutensor_1_7.lib ,cudaPackages_11.cutensor_1_7.static)
  • cudaPackages.cutensor_1_3 (cudaPackages.cutensor_1_3.dev ,cudaPackages.cutensor_1_3.lib ,cudaPackages.cutensor_1_3.static ,cudaPackagesGoogle.cutensor_1_3 ,cudaPackagesGoogle.cutensor_1_3.dev ,cudaPackagesGoogle.cutensor_1_3.lib ,cudaPackagesGoogle.cutensor_1_3.static ,cudaPackages_11.cutensor_1_3 ,cudaPackages_11.cutensor_1_3.dev ,cudaPackages_11.cutensor_1_3.lib ,cudaPackages_11.cutensor_1_3.static)
  • cudaPackages.cutensor_1_4 (cudaPackages.cutensor_1_4.dev ,cudaPackages.cutensor_1_4.lib ,cudaPackages.cutensor_1_4.static ,cudaPackagesGoogle.cutensor_1_4 ,cudaPackagesGoogle.cutensor_1_4.dev ,cudaPackagesGoogle.cutensor_1_4.lib ,cudaPackagesGoogle.cutensor_1_4.static ,cudaPackages_11.cutensor_1_4 ,cudaPackages_11.cutensor_1_4.dev ,cudaPackages_11.cutensor_1_4.lib ,cudaPackages_11.cutensor_1_4.static)
  • cudaPackages.cutensor_1_5 (cudaPackages.cutensor_1_5.dev ,cudaPackages.cutensor_1_5.lib ,cudaPackages.cutensor_1_5.static ,cudaPackagesGoogle.cutensor_1_5 ,cudaPackagesGoogle.cutensor_1_5.dev ,cudaPackagesGoogle.cutensor_1_5.lib ,cudaPackagesGoogle.cutensor_1_5.static ,cudaPackages_11.cutensor_1_5 ,cudaPackages_11.cutensor_1_5.dev ,cudaPackages_11.cutensor_1_5.lib ,cudaPackages_11.cutensor_1_5.static)
  • cudaPackages.cutensor_1_6 (cudaPackages.cutensor_1_6.dev ,cudaPackages.cutensor_1_6.lib ,cudaPackages.cutensor_1_6.static ,cudaPackagesGoogle.cutensor_1_6 ,cudaPackagesGoogle.cutensor_1_6.dev ,cudaPackagesGoogle.cutensor_1_6.lib ,cudaPackagesGoogle.cutensor_1_6.static ,cudaPackages_11.cutensor_1_6 ,cudaPackages_11.cutensor_1_6.dev ,cudaPackages_11.cutensor_1_6.lib ,cudaPackages_11.cutensor_1_6.static)
  • cudaPackages.fabricmanager (cudaPackages.fabricmanager.bin ,cudaPackages.fabricmanager.dev ,cudaPackages.fabricmanager.lib ,cudaPackagesGoogle.fabricmanager ,cudaPackagesGoogle.fabricmanager.bin ,cudaPackagesGoogle.fabricmanager.dev ,cudaPackagesGoogle.fabricmanager.lib ,cudaPackages_11.fabricmanager ,cudaPackages_11.fabricmanager.bin ,cudaPackages_11.fabricmanager.dev ,cudaPackages_11.fabricmanager.lib)
  • cudaPackages.libcublas (cudaPackages.libcublas.dev ,cudaPackages.libcublas.lib ,cudaPackages.libcublas.static ,cudaPackagesGoogle.libcublas ,cudaPackagesGoogle.libcublas.dev ,cudaPackagesGoogle.libcublas.lib ,cudaPackagesGoogle.libcublas.static ,cudaPackages_11.libcublas ,cudaPackages_11.libcublas.dev ,cudaPackages_11.libcublas.lib ,cudaPackages_11.libcublas.static)
  • cudaPackages.libcufft (cudaPackages.libcufft.dev ,cudaPackages.libcufft.lib ,cudaPackages.libcufft.static ,cudaPackagesGoogle.libcufft ,cudaPackagesGoogle.libcufft.dev ,cudaPackagesGoogle.libcufft.lib ,cudaPackagesGoogle.libcufft.static ,cudaPackages_11.libcufft ,cudaPackages_11.libcufft.dev ,cudaPackages_11.libcufft.lib ,cudaPackages_11.libcufft.static)
  • cudaPackages.libcufile (cudaPackages.libcufile.dev ,cudaPackages.libcufile.lib ,cudaPackages.libcufile.sample ,cudaPackages.libcufile.static ,cudaPackagesGoogle.libcufile ,cudaPackagesGoogle.libcufile.dev ,cudaPackagesGoogle.libcufile.lib ,cudaPackagesGoogle.libcufile.sample ,cudaPackagesGoogle.libcufile.static ,cudaPackages_11.libcufile ,cudaPackages_11.libcufile.dev ,cudaPackages_11.libcufile.lib ,cudaPackages_11.libcufile.sample ,cudaPackages_11.libcufile.static)
  • cudaPackages.libcurand (cudaPackages.libcurand.dev ,cudaPackages.libcurand.lib ,cudaPackages.libcurand.static ,cudaPackagesGoogle.libcurand ,cudaPackagesGoogle.libcurand.dev ,cudaPackagesGoogle.libcurand.lib ,cudaPackagesGoogle.libcurand.static ,cudaPackages_11.libcurand ,cudaPackages_11.libcurand.dev ,cudaPackages_11.libcurand.lib ,cudaPackages_11.libcurand.static)
  • cudaPackages.libcusolver (cudaPackages.libcusolver.dev ,cudaPackages.libcusolver.lib ,cudaPackages.libcusolver.static ,cudaPackagesGoogle.libcusolver ,cudaPackagesGoogle.libcusolver.dev ,cudaPackagesGoogle.libcusolver.lib ,cudaPackagesGoogle.libcusolver.static ,cudaPackages_11.libcusolver ,cudaPackages_11.libcusolver.dev ,cudaPackages_11.libcusolver.lib ,cudaPackages_11.libcusolver.static)
  • cudaPackages.libcusparse (cudaPackages.libcusparse.dev ,cudaPackages.libcusparse.lib ,cudaPackages.libcusparse.static ,cudaPackagesGoogle.libcusparse ,cudaPackagesGoogle.libcusparse.dev ,cudaPackagesGoogle.libcusparse.lib ,cudaPackagesGoogle.libcusparse.static ,cudaPackages_11.libcusparse ,cudaPackages_11.libcusparse.dev ,cudaPackages_11.libcusparse.lib ,cudaPackages_11.libcusparse.static)
  • cudaPackages.libnpp (cudaPackages.libnpp.dev ,cudaPackages.libnpp.lib ,cudaPackages.libnpp.static ,cudaPackagesGoogle.libnpp ,cudaPackagesGoogle.libnpp.dev ,cudaPackagesGoogle.libnpp.lib ,cudaPackagesGoogle.libnpp.static ,cudaPackages_11.libnpp ,cudaPackages_11.libnpp.dev ,cudaPackages_11.libnpp.lib ,cudaPackages_11.libnpp.static)
  • cudaPackages.libnvidia_nscq (cudaPackages.libnvidia_nscq.lib ,cudaPackagesGoogle.libnvidia_nscq ,cudaPackagesGoogle.libnvidia_nscq.lib ,cudaPackages_11.libnvidia_nscq ,cudaPackages_11.libnvidia_nscq.lib)
  • cudaPackages.libnvjpeg (cudaPackages.libnvjpeg.dev ,cudaPackages.libnvjpeg.lib ,cudaPackages.libnvjpeg.static ,cudaPackagesGoogle.libnvjpeg ,cudaPackagesGoogle.libnvjpeg.dev ,cudaPackagesGoogle.libnvjpeg.lib ,cudaPackagesGoogle.libnvjpeg.static ,cudaPackages_11.libnvjpeg ,cudaPackages_11.libnvjpeg.dev ,cudaPackages_11.libnvjpeg.lib ,cudaPackages_11.libnvjpeg.static)
  • cudaPackages.nccl (cudaPackagesGoogle.nccl ,cudaPackages_11.nccl)
  • cudaPackages.nccl-tests (cudaPackagesGoogle.nccl-tests ,cudaPackages_11.nccl-tests)
  • cudaPackages.nccl.dev (cudaPackagesGoogle.nccl.dev ,cudaPackages_11.nccl.dev)
  • cudaPackages.nsight_compute (cudaPackages.nsight_compute.bin ,cudaPackagesGoogle.nsight_compute ,cudaPackagesGoogle.nsight_compute.bin ,cudaPackages_11.nsight_compute ,cudaPackages_11.nsight_compute.bin)
  • cudaPackages.nvidia_fs (cudaPackagesGoogle.nvidia_fs ,cudaPackages_11.nvidia_fs)
  • cudaPackages.saxpy (cudaPackagesGoogle.saxpy ,cudaPackages_11.saxpy)
  • cudaPackages_10.cudatoolkit
  • cudaPackages_10.cudatoolkit.doc
  • cudaPackages_10.cudatoolkit.lib
  • cudaPackages_10.cudnn_8_1 (cudaPackages_10.cudnn_8_1.dev ,cudaPackages_10.cudnn_8_1.lib ,cudaPackages_10.cudnn_8_1.static)
  • cudaPackages_10.cudnn_8_2 (cudaPackages_10.cudnn_8_2.dev ,cudaPackages_10.cudnn_8_2.lib ,cudaPackages_10.cudnn_8_2.static)
  • cudaPackages_10.cudnn_8_3 (cudaPackages_10.cudnn_8_3.dev ,cudaPackages_10.cudnn_8_3.lib ,cudaPackages_10.cudnn_8_3.static)
  • cudaPackages_10.cudnn_8_4 (cudaPackages_10.cudnn_8_4.dev ,cudaPackages_10.cudnn_8_4.lib ,cudaPackages_10.cudnn_8_4.static)
  • cudaPackages_10.cudnn_8_5 (cudaPackages_10.cudnn_8_5.dev ,cudaPackages_10.cudnn_8_5.lib ,cudaPackages_10.cudnn_8_5.static)
  • cudaPackages_10.cudnn_8_6 (cudaPackages_10.cudnn_8_6.dev ,cudaPackages_10.cudnn_8_6.lib ,cudaPackages_10.cudnn_8_6.static)
  • cudaPackages_10.cudnn_8_7 (cudaPackages_10.cudnn_8_7.dev ,cudaPackages_10.cudnn_8_7.lib ,cudaPackages_10.cudnn_8_7.static)
  • cudaPackages_10.cutensor (cudaPackages_10.cutensor.dev ,cudaPackages_10.cutensor.lib ,cudaPackages_10.cutensor.static ,cudaPackages_10.cutensor_1_7 ,cudaPackages_10.cutensor_1_7.dev ,cudaPackages_10.cutensor_1_7.lib ,cudaPackages_10.cutensor_1_7.static)
  • cudaPackages_10.cutensor_1_3 (cudaPackages_10.cutensor_1_3.dev ,cudaPackages_10.cutensor_1_3.lib ,cudaPackages_10.cutensor_1_3.static)
  • cudaPackages_10.cutensor_1_4 (cudaPackages_10.cutensor_1_4.dev ,cudaPackages_10.cutensor_1_4.lib ,cudaPackages_10.cutensor_1_4.static)
  • cudaPackages_10.cutensor_1_5 (cudaPackages_10.cutensor_1_5.dev ,cudaPackages_10.cutensor_1_5.lib ,cudaPackages_10.cutensor_1_5.static)
  • cudaPackages_10.cutensor_1_6 (cudaPackages_10.cutensor_1_6.dev ,cudaPackages_10.cutensor_1_6.lib ,cudaPackages_10.cutensor_1_6.static)
  • cudaPackages_12.cuda_cccl (cudaPackages_12.cuda_cccl.dev)
  • cudaPackages_12.cuda_cudart (cudaPackages_12.cuda_cudart.dev ,cudaPackages_12.cuda_cudart.lib ,cudaPackages_12.cuda_cudart.static)
  • cudaPackages_12.cuda_cuobjdump (cudaPackages_12.cuda_cuobjdump.bin)
  • cudaPackages_12.cuda_cupti (cudaPackages_12.cuda_cupti.dev ,cudaPackages_12.cuda_cupti.lib ,cudaPackages_12.cuda_cupti.sample ,cudaPackages_12.cuda_cupti.static)
  • cudaPackages_12.cuda_cuxxfilt (cudaPackages_12.cuda_cuxxfilt.bin ,cudaPackages_12.cuda_cuxxfilt.dev ,cudaPackages_12.cuda_cuxxfilt.static)
  • cudaPackages_12.cuda_demo_suite
  • cudaPackages_12.cuda_documentation
  • cudaPackages_12.cuda_gdb (cudaPackages_12.cuda_gdb.bin)
  • cudaPackages_12.cuda_nsight (cudaPackages_12.cuda_nsight.bin)
  • cudaPackages_12.cuda_nvcc (cudaPackages_12.cuda_nvcc.bin ,cudaPackages_12.cuda_nvcc.dev ,cudaPackages_12.cuda_nvcc.lib ,cudaPackages_12.cuda_nvcc.static)
  • cudaPackages_12.cuda_nvdisasm (cudaPackages_12.cuda_nvdisasm.bin)
  • cudaPackages_12.cuda_nvml_dev (cudaPackages_12.cuda_nvml_dev.dev ,cudaPackages_12.cuda_nvml_dev.lib)
  • cudaPackages_12.cuda_nvprof (cudaPackages_12.cuda_nvprof.bin ,cudaPackages_12.cuda_nvprof.lib)
  • cudaPackages_12.cuda_nvprune (cudaPackages_12.cuda_nvprune.bin)
  • cudaPackages_12.cuda_nvrtc (cudaPackages_12.cuda_nvrtc.dev ,cudaPackages_12.cuda_nvrtc.lib ,cudaPackages_12.cuda_nvrtc.static)
  • cudaPackages_12.cuda_nvtx (cudaPackages_12.cuda_nvtx.dev ,cudaPackages_12.cuda_nvtx.lib)
  • cudaPackages_12.cuda_nvvp (cudaPackages_12.cuda_nvvp.bin)
  • cudaPackages_12.cuda_opencl (cudaPackages_12.cuda_opencl.dev ,cudaPackages_12.cuda_opencl.lib)
  • cudaPackages_12.cuda_profiler_api (cudaPackages_12.cuda_profiler_api.dev)
  • cudaPackages_12.cuda_sanitizer_api (cudaPackages_12.cuda_sanitizer_api.bin)
  • cudaPackages_12.cudatoolkit
  • cudaPackages_12.cudatoolkit.doc
  • cudaPackages_12.cudatoolkit.lib
  • cudaPackages_12.cudnn (cudaPackages_12.cudnn.dev ,cudaPackages_12.cudnn.lib ,cudaPackages_12.cudnn.static)
  • cudaPackages_12.cutensor (cudaPackages_12.cutensor.dev ,cudaPackages_12.cutensor.lib ,cudaPackages_12.cutensor.static ,cudaPackages_12.cutensor_1_7 ,cudaPackages_12.cutensor_1_7.dev ,cudaPackages_12.cutensor_1_7.lib ,cudaPackages_12.cutensor_1_7.static)
  • cudaPackages_12.cutensor_1_6 (cudaPackages_12.cutensor_1_6.dev ,cudaPackages_12.cutensor_1_6.lib ,cudaPackages_12.cutensor_1_6.static)
  • cudaPackages_12.fabricmanager (cudaPackages_12.fabricmanager.bin ,cudaPackages_12.fabricmanager.dev ,cudaPackages_12.fabricmanager.lib)
  • cudaPackages_12.libcublas (cudaPackages_12.libcublas.dev ,cudaPackages_12.libcublas.lib ,cudaPackages_12.libcublas.static)
  • cudaPackages_12.libcufft (cudaPackages_12.libcufft.dev ,cudaPackages_12.libcufft.lib ,cudaPackages_12.libcufft.static)
  • cudaPackages_12.libcufile (cudaPackages_12.libcufile.dev ,cudaPackages_12.libcufile.lib ,cudaPackages_12.libcufile.sample ,cudaPackages_12.libcufile.static)
  • cudaPackages_12.libcurand (cudaPackages_12.libcurand.dev ,cudaPackages_12.libcurand.lib ,cudaPackages_12.libcurand.static)
  • cudaPackages_12.libcusolver (cudaPackages_12.libcusolver.dev ,cudaPackages_12.libcusolver.lib ,cudaPackages_12.libcusolver.static)
  • cudaPackages_12.libcusparse (cudaPackages_12.libcusparse.dev ,cudaPackages_12.libcusparse.lib ,cudaPackages_12.libcusparse.static)
  • cudaPackages_12.libnpp (cudaPackages_12.libnpp.dev ,cudaPackages_12.libnpp.lib ,cudaPackages_12.libnpp.static)
  • cudaPackages_12.libnvidia_nscq (cudaPackages_12.libnvidia_nscq.bin ,cudaPackages_12.libnvidia_nscq.dev ,cudaPackages_12.libnvidia_nscq.lib)
  • cudaPackages_12.libnvjitlink (cudaPackages_12.libnvjitlink.dev ,cudaPackages_12.libnvjitlink.lib ,cudaPackages_12.libnvjitlink.static)
  • cudaPackages_12.libnvjpeg (cudaPackages_12.libnvjpeg.dev ,cudaPackages_12.libnvjpeg.lib ,cudaPackages_12.libnvjpeg.static)
  • cudaPackages_12.libnvvm_samples
  • cudaPackages_12.nccl
  • cudaPackages_12.nccl-tests
  • cudaPackages_12.nccl.dev
  • cudaPackages_12.nvidia_fs
  • cudaPackages_12.saxpy

@yannham
Copy link
Contributor

yannham commented Jan 9, 2024

I believe

elfHasDynamicSection() {
    readelf -h "$1" >& /dev/null
}

would be a proper replacement for elfHasDynamicSection. I tried and on my platform (x86_64 Linux) it works with statically linked executables as well. The most permissive way would be to check that the first four bytes are the magic number of the ELF format, but I imagine readelf does a bit more when actually trying to read the elf header, and could detect malformed input (such as having only the four magic bytes of ELF and nothing else).

However, I believe the test here decides if we will proceed with patching the elf file using patchelf. Thus, if patchelf errors out on the elf file in the first place, it might not make sense to proceed with this files, and the current test is maybe more appropriate, even if more restrictive.

Copy link
Contributor

@yannham yannham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beside @SomeoneSerge 's remarks (although I feel some of them are a bit outside of the scope of such a PR), I agree that there's no obvious reason to process only files with the executable bit set.

@ConnorBaker ConnorBaker self-assigned this Jan 9, 2024
@ConnorBaker
Copy link
Contributor

I agree that those can be pursued further in a different PR; merging this now to unblock some other stuff.

@ConnorBaker ConnorBaker merged commit 9c4e129 into NixOS:master Jan 9, 2024
27 checks passed
@SomeoneSerge
Copy link
Contributor

Sure. I posted the cosmetic comments semi-automatically, I only didn't merge right away because I was unsure about the # of reads, but I guess that's what ssds are for

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

5 participants