From baf766a7ff9db45c707b4539176f2143fbd90efd Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 1 Feb 2019 17:06:25 +0100 Subject: gnu: mrustc: Fix deserialization bug in communication with the procedural macro compiler plugin. * gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/rust.scm (mrustc)[source]: Use it. Co-authored-by: Chris Marusich --- gnu/local.mk | 1 + ...ustc-0.8.0-fix-variable-length-integer-receiving.patch | 15 +++++++++++++++ gnu/packages/rust.scm | 4 +++- 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 37083ca916..4493470bb4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1046,6 +1046,7 @@ dist_patch_DATA = \ %D%/packages/patches/mozjs38-tracelogger.patch \ %D%/packages/patches/mozjs38-version-detection.patch \ %D%/packages/patches/mrrescue-support-love-11.patch \ + %D%/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch \ %D%/packages/patches/mumble-1.2.19-abs.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ diff --git a/gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch b/gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch new file mode 100644 index 0000000000..9e76653a07 --- /dev/null +++ b/gnu/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch @@ -0,0 +1,15 @@ +https://github.com/thepowersgang/mrustc/issues/109 +From: Danny Milosavljevic +Date: Fri, 3 Jan 2019 13:00:00 +0100 + +--- mrustc/src/expand/proc_macro.cpp.orig 2019-02-01 14:16:54.208486062 +0100 ++++ mrustc/src/expand/proc_macro.cpp 2019-02-01 14:17:14.350925705 +0100 +@@ -977,7 +977,7 @@ + for(;;) + { + auto b = recv_u8(); +- v |= static_cast(b) << ofs; ++ v |= static_cast(b & 0x7F) << ofs; + if( (b & 0x80) == 0 ) + break; + ofs += 7; diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 501736d898..ca4d0a8a8d 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -105,7 +105,9 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0a7v8ccyzp1sdkwni8h1698hxpfz2sxhcpx42n6l2pbm0rbjp08i")))) + "0a7v8ccyzp1sdkwni8h1698hxpfz2sxhcpx42n6l2pbm0rbjp08i")) + (patches + (search-patches "mrustc-0.8.0-fix-variable-length-integer-receiving.patch")))) (outputs '("out" "cargo")) (build-system gnu-build-system) (inputs -- cgit v1.2.3