New comment by ahesford on void-packages repository https://github.com/void-linux/void-packages/pull/21153#issuecomment-620769230 Comment: Some updates: * All packages install into the normal `/usr` hierarchy now. * The `rocm-llvm` package (which is really only used to build `rocm-comgr` and isn't intended for end-users) only targets `AMDGPU` and installs under `/usr/lib/rocm-llvm`. * All files which might conflict with other packages (`usr/bin/clinfo`, `usr/lib/libOpenCL.so*` and `usr/include/CL/*`) have custom names: `clinfo` is `rocm-clinfo`, `libOpenCL.so*` is `libOpenCL-ROCm.so*` and `usr/include/CL` becomes `usr/include/rocm/CL`. I believe this is ready for roll-out, although individual OpenCL-aware programs will need special handling to support ROCm. The incompatibilities between `libOpenCL` in `ocl-icd` and `libOpenCL` in `rocm-opencl-runtime` make this unavoidable. The library rename in `rocm-opencl-runtime` is more than just a linking issue. While some programs explicitly link against `libOpenCL` and could be altered to link against `libOpenCL-ROCm`, many OpenCL programs load the OpenCL ICD with `dlopen`. Those packages will need source patches to move `libOpenCL.so*` references in the code to `libOpenCL-ROCm.so*`. Packages will also need to use the header files in `usr/include/rocm/CL`, which is probably as simple as not depending on `opencl2-headers` and adding `usr/include/rocm` to the compiler include paths. In most cases, I think OpenCL-aware packages can be custom-built to support ROCm with a build option that toggles a few simple things. This PR includes a modified `hashcat` template to do just that. Of course, because ROCm will not be universally useful to Void, the `rocm` build option should be disabled by default.