diff --git a/overlays/mesa-gcc/default.nix b/overlays/mesa-gcc/default.nix index 89d8a16..2f29559 100644 --- a/overlays/mesa-gcc/default.nix +++ b/overlays/mesa-gcc/default.nix @@ -1,7 +1,40 @@ { ... }: final: prev: { - mesa = prev.mesa.override { + mesa = (prev.mesa.overrideAttrs (old: rec { + version = "git-unstable-2026-02-12"; + src = prev.fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "mesa"; + repo = "mesa"; + rev = "main"; + hash = "sha256-5gpLORvbV3skALrQa0VxTJJarYjuq+KyTxDm9HtZNbQ="; + }; + patches = []; + buildInputs = old.buildInputs ++ (with prev.llvmPackages_21; [ + clang-unwrapped + libclang + ]); + + # Create symlinks to clang libraries so meson can find them + preConfigure = (old.preConfigure or "") + '' + mkdir -p $NIX_BUILD_TOP/clang-libs + for lib in ${prev.llvmPackages_21.clang-unwrapped.lib}/lib/*.a; do + ln -sf "$lib" "$NIX_BUILD_TOP/clang-libs/" + done + export LIBRARY_PATH="$NIX_BUILD_TOP/clang-libs:''${LIBRARY_PATH:-}" + export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" + ''; + + mesonFlags = + (builtins.filter (flag: + !(prev.lib.hasPrefix "-Dclang-libdir=" flag) && + flag != "--sysconfdir=/etc" + ) old.mesonFlags) ++ [ + "-Dsysconfdir=${placeholder "out"}/etc" + ] ++ (if prev.stdenv.hostPlatform.is64bit then [ "-Dintel-rt=enabled" ] else [ "-Dintel-rt=disabled" ]); + })).override { stdenv = prev.gcc14Stdenv; }; } +