Unverified Commit c45e1b64 authored by Someone Serge's avatar Someone Serge
Browse files

cudaPackages.cuda_nvcc: use gcc from pkgsHostTarget

i.e. with the same offsets as nvcc itself
parent 8eda4c36
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -85,7 +85,20 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
  );

  cuda_nvcc = prev.cuda_nvcc.overrideAttrs (
    oldAttrs: {
    oldAttrs:
    let
      # This replicates the logic in backend-stdenv.nix, except the stdenv uses
      # buildPackages and we use pkgsHostTarget.
      ccForLibs-wrapper = final.pkgs.stdenv.cc;
      gccMajorVersion = final.nvccCompatibilities.${cudaVersion}.gccMaxMajorVersion;
      cc = final.pkgs.wrapCCWith {
        cc = final.pkgs."gcc${gccMajorVersion}".cc;
        useCcForLibs = true;
        gccForLibs = ccForLibs-wrapper.cc;
      };
      cxxStdlibDir = ccForLibs-wrapper.cxxStdlib.solib;
    in
    {

      outputs = oldAttrs.outputs ++ lists.optionals (!(builtins.elem "lib" oldAttrs.outputs)) [ "lib" ];

@@ -119,8 +132,8 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
          cat << EOF >> bin/nvcc.profile

          # Fix a compatible backend compiler
          PATH += ${lib.getBin final.backendStdenv.cc}/bin:
          LIBRARIES += "-L${lib.getLib final.backendStdenv.nixpkgsCompatibleLibstdcxx}/lib"
          PATH += ${lib.getBin cc}/bin:
          LIBRARIES += "-L${cxxStdlibDir}/lib"

          # Expose the split-out nvvm
          LIBRARIES =+ -L''${!outputBin}/nvvm/lib