From 14675edcbc405e286f48266b1aa202015e873c10 Mon Sep 17 00:00:00 2001 From: Sergey Pepyakin <s.pepyakin@gmail.com> Date: Fri, 8 Jun 2018 13:52:58 +0300 Subject: [PATCH] Build parachains (#207) * Fix build of test-chains. * Add test-chains into build and publish scripts --- substrate/build.sh | 1 + .../test-chains/basic_add/Cargo.toml | 2 +- .../test-chains/basic_add/src/lib.rs | 2 +- .../test-chains/basic_add/src/wasm.rs | 20 +++++++++++------- .../polkadot/parachain/test-chains/build.sh | 13 ++++++++++++ .../test-chains/build_test_chains.sh | 14 ------------ .../parachain/tests/res/basic_add.wasm | Bin 44941 -> 11783 bytes substrate/publish-wasm.sh | 2 +- 8 files changed, 29 insertions(+), 25 deletions(-) create mode 100755 substrate/polkadot/parachain/test-chains/build.sh delete mode 100755 substrate/polkadot/parachain/test-chains/build_test_chains.sh diff --git a/substrate/build.sh b/substrate/build.sh index 9a2aaac4630..dd477537307 100755 --- a/substrate/build.sh +++ b/substrate/build.sh @@ -10,3 +10,4 @@ cd demo/runtime/wasm && ./build.sh && cd ../../.. cd substrate/executor/wasm && ./build.sh && cd ../../.. cd substrate/test-runtime/wasm && ./build.sh && cd ../../.. cd polkadot/runtime/wasm && ./build.sh && cd ../../.. +cd polkadot/parachain/test-chains && ./build.sh && cd ../../.. diff --git a/substrate/polkadot/parachain/test-chains/basic_add/Cargo.toml b/substrate/polkadot/parachain/test-chains/basic_add/Cargo.toml index afc9e9f1310..dd0fc4050d9 100644 --- a/substrate/polkadot/parachain/test-chains/basic_add/Cargo.toml +++ b/substrate/polkadot/parachain/test-chains/basic_add/Cargo.toml @@ -9,7 +9,7 @@ crate-type = ["cdylib"] [dependencies] polkadot-parachain = { path = "../../", default-features = false } -wee_alloc = "0.2.0" +wee_alloc = "0.4.0" tiny-keccak = "1.4" pwasm-libc = "0.2" diff --git a/substrate/polkadot/parachain/test-chains/basic_add/src/lib.rs b/substrate/polkadot/parachain/test-chains/basic_add/src/lib.rs index 3f877b16d1b..be21a8dec8c 100644 --- a/substrate/polkadot/parachain/test-chains/basic_add/src/lib.rs +++ b/substrate/polkadot/parachain/test-chains/basic_add/src/lib.rs @@ -17,7 +17,7 @@ //! Basic parachain that adds a number as part of its state. #![cfg_attr(not(feature = "std"), no_std)] -#![cfg_attr(not(feature = "std"), feature(alloc, core_intrinsics, global_allocator, lang_items))] +#![cfg_attr(not(feature = "std"), feature(alloc, core_intrinsics, global_allocator, lang_items, panic_implementation))] #[cfg(not(feature = "std"))] extern crate alloc; diff --git a/substrate/polkadot/parachain/test-chains/basic_add/src/wasm.rs b/substrate/polkadot/parachain/test-chains/basic_add/src/wasm.rs index fa1bf64f43c..3af2dd39a97 100644 --- a/substrate/polkadot/parachain/test-chains/basic_add/src/wasm.rs +++ b/substrate/polkadot/parachain/test-chains/basic_add/src/wasm.rs @@ -16,19 +16,23 @@ //! Defines WASM module logic. +use core::intrinsics; + use parachain::{self, ValidationResult}; use parachain::codec::Slicable; use super::{HeadData, BlockData}; -#[lang = "panic_fmt"] +#[panic_implementation] +#[no_mangle] +pub fn rust_begin_panic(_info: &::core::panic::PanicInfo) -> ! { + unsafe { + intrinsics::abort() + } +} + +#[lang = "oom"] #[no_mangle] -pub extern fn panic_fmt( - _args: ::core::fmt::Arguments, - _file: &'static str, - _line: u32, - _col: u32, -) -> ! { - use core::intrinsics; +pub fn oom() -> ! { unsafe { intrinsics::abort(); } diff --git a/substrate/polkadot/parachain/test-chains/build.sh b/substrate/polkadot/parachain/test-chains/build.sh new file mode 100755 index 00000000000..2b876634e88 --- /dev/null +++ b/substrate/polkadot/parachain/test-chains/build.sh @@ -0,0 +1,13 @@ +#!/bin/sh +set -e + +rm -rf ./target +for i in */ +do + i=${i%/} + cd $i + + RUSTFLAGS="-C link-arg=--import-memory" cargo +nightly build --target=wasm32-unknown-unknown --release --no-default-features + wasm-gc target/wasm32-unknown-unknown/release/$i.wasm ../../tests/res/$i.wasm + cd .. +done diff --git a/substrate/polkadot/parachain/test-chains/build_test_chains.sh b/substrate/polkadot/parachain/test-chains/build_test_chains.sh deleted file mode 100755 index 6523e46f14e..00000000000 --- a/substrate/polkadot/parachain/test-chains/build_test_chains.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -set -e - -rm -rf ./target -for i in */ -do - i=${i%/} - cd $i - - # TODO: stop using exact nightly when wee-alloc works on normal nightly. - RUSTFLAGS="-C link-arg=--import-memory" cargo +nightly-2018-03-07 build --target=wasm32-unknown-unknown --release --no-default-features - wasm-gc target/wasm32-unknown-unknown/release/$i.wasm ../../tests/res/$i.wasm - cd .. -done diff --git a/substrate/polkadot/parachain/tests/res/basic_add.wasm b/substrate/polkadot/parachain/tests/res/basic_add.wasm index 83f52db817f81cf088221070e7db06d3a9ea8765..709c111d278c720417615f10e3f7dd08538ed76f 100755 GIT binary patch literal 11783 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 literal 44941 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 X{Ls~5O8(frTX~$XF7(Rv(PRG)^`N<2 diff --git a/substrate/publish-wasm.sh b/substrate/publish-wasm.sh index 7ac79a99bf5..2a42504eef6 100755 --- a/substrate/publish-wasm.sh +++ b/substrate/publish-wasm.sh @@ -4,7 +4,7 @@ set -e REPO="github.com/paritytech/polkadot-wasm-bin.git" REPO_AUTH="${GH_TOKEN}:@${REPO}" -SRCS=( "polkadot/runtime/wasm" "substrate/executor/wasm" "demo/runtime/wasm" "substrate/test-runtime/wasm" ) +SRCS=( "polkadot/runtime/wasm" "substrate/executor/wasm" "demo/runtime/wasm" "substrate/test-runtime/wasm" "polkadot/parachain/test-chains" ) DST=".wasm-binaries" TARGET="wasm32-unknown-unknown" UTCDATE=`date -u "+%Y%m%d.%H%M%S.0"` -- GitLab