From ca29344ce8609b1ebd3b3a2f1f86f85eded87b8c Mon Sep 17 00:00:00 2001 From: Daniel Martinez Date: Thu, 9 May 2024 08:51:47 -0400 Subject: [PATCH] meson: fix build with rust proc-macro Fixes an issue causing mesa to fail when cross-compiling https://github.com/mesonbuild/meson/issues/12973 --- srcpkgs/meson/patches/rust-proc-macro.patch | 74 +++++++++++++++++++++ srcpkgs/meson/template | 2 +- 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/meson/patches/rust-proc-macro.patch diff --git a/srcpkgs/meson/patches/rust-proc-macro.patch b/srcpkgs/meson/patches/rust-proc-macro.patch new file mode 100644 index 00000000000000..a5fa1b49d50b43 --- /dev/null +++ b/srcpkgs/meson/patches/rust-proc-macro.patch @@ -0,0 +1,74 @@ +commit 4f0b3c650baacf02c1ca82b7cce97665dd4fefea +Author: Daniel Martinez +Date: Thu May 9 08:31:57 2024 -0400 + + Revert "rust: recursively pull proc-macro dependencies as well" + + This reverts commit aee941559c4b88a062e88186819a820c69c200ae. + +diff --git a/mesonbuild/build.py b/mesonbuild/build.py +index da4c4373d..1d5bf7bd6 100644 +--- a/mesonbuild/build.py ++++ b/mesonbuild/build.py +@@ -1295,6 +1295,8 @@ class BuildTarget(Target): + for t in self.link_targets: + if t in result: + continue ++ if t.rust_crate_type == 'proc-macro': ++ continue + if include_internals or not t.is_internal(): + result.add(t) + if isinstance(t, StaticLibrary): +diff --git a/test cases/rust/18 proc-macro/lib.rs b/test cases/rust/18 proc-macro/lib.rs +deleted file mode 100644 +index 5242886cc..000000000 +--- a/test cases/rust/18 proc-macro/lib.rs ++++ /dev/null +@@ -1,8 +0,0 @@ +-extern crate proc_macro_examples; +-use proc_macro_examples::make_answer; +- +-make_answer!(); +- +-pub fn func() -> u32 { +- answer() +-} +diff --git a/test cases/rust/18 proc-macro/meson.build b/test cases/rust/18 proc-macro/meson.build +index e8b28eda1..c5f0dfc82 100644 +--- a/test cases/rust/18 proc-macro/meson.build ++++ b/test cases/rust/18 proc-macro/meson.build +@@ -31,14 +31,3 @@ main = executable( + ) + + test('main_test2', main) +- +-subdir('subdir') +- +-staticlib = static_library('staticlib', 'lib.rs', +- link_with: pm_in_subdir, +- rust_dependency_map : {'proc_macro_examples3' : 'proc_macro_examples'} +-) +- +-executable('transitive-proc-macro', 'transitive-proc-macro.rs', +- link_with: staticlib, +-) +diff --git a/test cases/rust/18 proc-macro/subdir/meson.build b/test cases/rust/18 proc-macro/subdir/meson.build +deleted file mode 100644 +index 04842c431..000000000 +--- a/test cases/rust/18 proc-macro/subdir/meson.build ++++ /dev/null +@@ -1 +0,0 @@ +-pm_in_subdir = rust.proc_macro('proc_macro_examples3', '../proc.rs') +diff --git a/test cases/rust/18 proc-macro/transitive-proc-macro.rs b/test cases/rust/18 proc-macro/transitive-proc-macro.rs +deleted file mode 100644 +index 4c804b3b6..000000000 +--- a/test cases/rust/18 proc-macro/transitive-proc-macro.rs ++++ /dev/null +@@ -1,7 +0,0 @@ +-extern crate staticlib; +-use staticlib::func; +- +- +-fn main() { +- assert_eq!(42, func()); +-} diff --git a/srcpkgs/meson/template b/srcpkgs/meson/template index ca1e11187a43d0..82faf4a8371117 100644 --- a/srcpkgs/meson/template +++ b/srcpkgs/meson/template @@ -1,7 +1,7 @@ # Template file for 'meson' pkgname=meson version=1.4.0 -revision=1 +revision=2 build_style=python3-module hostmakedepends="python3-devel python3-setuptools" depends="ninja python3-setuptools"