@@ -28,18 +28,13 @@ cd %_builddir/
2828# create target directory structure
2929mkdir -p %{i }/include
3030mkdir -p %{i }/lib64
31- mkdir -p %{i }/lib64/stubs
3231
3332# package only the runtime static libraries
3433mv %_builddir /build/lib64/libcudadevrt.a %{i }/lib64/
3534mv %_builddir /build/lib64/libcudart_static.a %{i }/lib64/
3635rm -f %_builddir /build/lib64/lib*.a
3736
38- # package only the CUDA driver and NVML library stubs
39- mv %_builddir /build/lib64/stubs/libcuda.so %{i }/lib64/stubs/libcuda.so
40- ln -sf libcuda.so %{i }/lib64/stubs/libcuda.so.1
41- mv %_builddir /build/lib64/stubs/libnvidia-ml.so %{i }/lib64/stubs/libnvidia-ml.so
42- ln -sf libnvidia-ml.so %{i }/lib64/stubs/libnvidia-ml.so.1
37+ # the stub libraries will be replaced by the redistributable driver libraries
4338rm -rf %_builddir /build/lib64/stubs/
4439
4540# do not package the OpenCL libraries
@@ -85,23 +80,32 @@ ln -s ../compute-sanitizer/compute-sanitizer %{i}/bin/compute-sanitizer
8580# package the NVVM compiler (cicc), library (libnvvm.so), device library (libdevice.10.bc) and samples
8681mv %_builddir /build/nvvm %{i }/
8782
88- # extract and repackage the NVIDIA libraries needed by the CUDA runtime
83+ # extract and repackage the redistributable NVIDIA driver libraries needed by the CUDA runtime
8984/bin/sh %_builddir /pkg/builds/NVIDIA-Linux-%{_arch }-%{driversversion }.run --silent --extract-only --tmpdir %_builddir /tmp --target %_builddir /build/drivers
9085
9186mkdir -p %{i }/drivers
92- mv %_builddir /build/drivers/libcuda.so.%{driversversion } %{i }/drivers/
93- ln -sf libcuda.so.%{driversversion } %{i }/drivers/libcuda.so.1
94- ln -sf libcuda.so.1 %{i }/drivers/libcuda.so
95- mv %_builddir /build/drivers/libcudadebugger.so.%{driversversion } %{i }/drivers/
96- ln -sf libcudadebugger.so.%{driversversion } %{i }/drivers/libcudadebugger.so.1
97- ln -sf libcudadebugger.so.1 %{i }/drivers/libcudadebugger.so
98- mv %_builddir /build/drivers/libnvidia-ptxjitcompiler.so.%{driversversion } %{i }/drivers/
99- ln -sf libnvidia-ptxjitcompiler.so.%{driversversion } %{i }/drivers/libnvidia-ptxjitcompiler.so.1
100- ln -sf libnvidia-ptxjitcompiler.so.1 %{i }/drivers/libnvidia-ptxjitcompiler.so
101- mv %_builddir /build/drivers/libnvidia-nvvm.so.%{driversversion } %{i }/drivers/
102- ln -sf libnvidia-nvvm.so.%{driversversion } %{i }/drivers/libnvidia-nvvm.so.4
103- ln -sf libnvidia-nvvm.so.4 %{i }/drivers/libnvidia-nvvm.so
104- mv %_builddir /build/drivers/nvidia-smi %{i }/drivers/
87+ cp -p %_builddir /build/drivers/libcuda.so.%{driversversion } %{i }/drivers/
88+ ln -sf libcuda.so.%{driversversion } %{i }/drivers/libcuda.so.1
89+ ln -sf libcuda.so.1 %{i }/drivers/libcuda.so
90+ cp -p %_builddir /build/drivers/libcudadebugger.so.%{driversversion } %{i }/drivers/
91+ ln -sf libcudadebugger.so.%{driversversion } %{i }/drivers/libcudadebugger.so.1
92+ ln -sf libcudadebugger.so.1 %{i }/drivers/libcudadebugger.so
93+ cp -p %_builddir /build/drivers/libnvidia-ptxjitcompiler.so.%{driversversion } %{i }/drivers/
94+ ln -sf libnvidia-ptxjitcompiler.so.%{driversversion } %{i }/drivers/libnvidia-ptxjitcompiler.so.1
95+ ln -sf libnvidia-ptxjitcompiler.so.1 %{i }/drivers/libnvidia-ptxjitcompiler.so
96+ cp -p %_builddir /build/drivers/libnvidia-nvvm.so.%{driversversion } %{i }/drivers/
97+ ln -sf libnvidia-nvvm.so.%{driversversion } %{i }/drivers/libnvidia-nvvm.so.4
98+ ln -sf libnvidia-nvvm.so.4 %{i }/drivers/libnvidia-nvvm.so
99+ cp -p %_builddir /build/drivers/nvidia-smi %{i }/drivers/
100+
101+ # reuse the redistributable CUDA driver library and NVML library in place of the CUDA stub libraries
102+ mkdir -p %{i }/lib64/stubs
103+ cp -p %_builddir /build/drivers/libcuda.so.%{driversversion } %{i }/lib64/stubs/
104+ ln -sf libcuda.so.%{driversversion } %{i }/lib64/stubs/libcuda.so.1
105+ ln -sf libcuda.so.1 %{i }/lib64/stubs/libcuda.so
106+ cp -p %_builddir /build/drivers/libnvidia-ml.so.%{driversversion } %{i }/lib64/stubs/
107+ ln -sf libnvidia-ml.so.%{driversversion } %{i }/lib64/stubs/libnvidia-ml.so.1
108+ ln -sf libnvidia-ml.so.1 %{i }/lib64/stubs/libnvidia-ml.so
105109
106110%post
107111# let nvcc find its components when invoked from the command line
0 commit comments