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 <cmmarusich@gmail.com>
This commit is contained in:
Danny Milosavljevic 2019-02-01 17:06:25 +01:00
parent 8b7e6d005e
commit baf766a7ff
No known key found for this signature in database
GPG Key ID: E71A35542C30BAA5
3 changed files with 19 additions and 1 deletions

View File

@ -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 \

View File

@ -0,0 +1,15 @@
https://github.com/thepowersgang/mrustc/issues/109
From: Danny Milosavljevic <dannym@scratchpost.org>
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<uint64_t>(b) << ofs;
+ v |= static_cast<uint64_t>(b & 0x7F) << ofs;
if( (b & 0x80) == 0 )
break;
ofs += 7;

View File

@ -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