Unverified Commit be33506d authored by Vladimír Čunát's avatar Vladimír Čunát
Browse files

ruby_{3_3,3_4}: backport patches for GCC 15 and LLVM 21 (#451386)

parents a6a6bbcf f0166da2
Loading
Loading
Loading
Loading
+30 −7
Original line number Diff line number Diff line
@@ -183,12 +183,35 @@ let
          # make: *** [uncommon.mk:373: do-install-all] Error 1
          enableParallelInstalling = false;

          patches = op useBaseRuby ./do-not-update-gems-baseruby-3.2.patch ++ [
          patches =
            op useBaseRuby ./do-not-update-gems-baseruby-3.2.patch
            ++ [
              # When using a baseruby, ruby always sets "libdir" to the build
              # directory, which nix rejects due to a reference in to /build/ in
              # the final product. Removing this reference doesn't seem to break
              # anything and fixes cross compilation.
              ./dont-refer-to-build-dir.patch
            ]
            # TODO: drop the isClang condition
            ++ ops (lib.versionOlder ver.majMin "3.4" && stdenv.cc.isClang) [
              (fetchpatch {
                name = "ruby-3.3-fix-llvm-21.patch";
                url = "https://github.com/ruby/ruby/commit/5a8d7642168f4ea0d9331fded3033c225bbc36c5.patch";
                excludes = [ "version.h" ];
                hash = "sha256-dV98gXXTSKM2ZezTvhVXNaKaXJxiWKEeUbqqL360cWw=";
              })
            ]
            ++ ops (lib.versionAtLeast ver.majMin "3.4" && lib.versionOlder ver.majMin "3.5") [
              (fetchpatch {
                name = "ruby-3.4-fix-gcc-15-llvm-21-1.patch";
                url = "https://github.com/ruby/ruby/commit/846bb760756a3bf1ab12d56d8909e104f16e6940.patch";
                hash = "sha256-+f0mzHsGAe9FT9NWE345BxzaB6vmWzMTvEfWF84uFOs=";
              })
              (fetchpatch {
                name = "ruby-3.4-fix-gcc-15-llvm-21-2.patch";
                url = "https://github.com/ruby/ruby/commit/18e176659e8afe402cab7d39972f2d56f2cf378f.patch";
                hash = "sha256-TKPG1hcC1G2WmUkvNV6QSnvUpTEDqrYKrIk/4fAS8QE=";
              })
            ];

          cargoRoot = opString yjitSupport "yjit";