Files
arkhe-origin-chain/crates/origin-chain-runtime/build.rs
T
davidherranandClaude Opus 4.7 b67a6ca1c6 docs(slice-2c): attempt #5 WASM_BUILD_STD=0 finding registered (alloc resuelto, std leak surface)
Charon sesión 2 continuation 2026-05-24 — empirical test Slice 2c attempt #5:
re-enable substrate-wasm-builder + set WASM_BUILD_STD=0 explicit override.

Findings canonical:
- ✅ alloc/exchange_malloc issue (Slice 2b attempts 1-4 blocker) RESUELTO canonical
- 🎯 NEW canonical layer: panic_impl duplicate via serde/std leakage transitive
- Error canonical: sp-io 40.0.1 panic_impl vs libstd-loaded panic_impl
- Diagnosis: serde pulled con std feature transitively → libstd linked en wasm32

Status canonical:
- Reverted canonical to safe state (no-op build.rs + substrate-wasm-builder dep
  commented). Slice 3 v0.0.13 mock-WASM fallback canonical sigue siendo path
  canonical estable canonical.
- Slice 2d canonical future requires deeper investigation canonical (inverted
  feature tree + serde patch o WASM_BUILD_RUSTFLAGS override o stable2512-4+ fix).

Documentation canonical filed:
- build.rs canonical: 5 attempts registered + Slice 2d path forward canonical
- Cargo.toml [build-deps]: comments canonical updated canonical
- CHANGELOG canonical: Unreleased section canonical Slice 2c attempt #5 entry

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 12:46:24 -05:00

48 lines
2.3 KiB
Rust

//! # Build script — Slice 2c canonical multi-attempt findings registered
//!
//! Slice 2b investigation registered (sesión 1, 2026-05-21) — 4 fix attempts
//! NO solved canonical:
//! 1. Remove direct serde dep (transitive from FRAME) — NO solved
//! 2. Pin serde =1.0.219 + =1.0.217 — NO solved
//! 3. Remove profile.release lto/codegen-units customization — NO solved
//! 4. WasmBuilder::build_using_defaults() upstream pattern — NO solved
//!
//! Slice 2c attempt #5 (Charon sesión 2 cont. 2026-05-24) — empirical test
//! WASM_BUILD_STD=0 explicit override canonical. Upstream docs confirman:
//! "WASM_BUILD_STD is disabled by default for WASM target and Rust >= 1.84".
//!
//! ## Attempt #5 finding canonical (BIG progress)
//!
//! `WASM_BUILD_STD=0` explicit + WasmBuilder re-enabled → **alloc/exchange_malloc
//! issue RESUELTO canonical**. Pero canonical surface NEW error canonical:
//!
//! ```
//! error[E0152]: found duplicate lang item `panic_impl`
//! --> sp-io-40.0.1/src/lib.rs:1774:1
//! = note: the lang item is first defined in crate `std` (which `serde` depends on)
//! = note: first definition in `std` loaded from libstd-*.rlib
//! = note: second definition in the local crate (`sp_io`)
//! ```
//!
//! Diagnosis canonical: serde está siendo pulled con `std` feature canonical
//! transitively desde algún dep canonical (parity-scale-codec o frame-*) →
//! libstd canonical linked en wasm32 → conflict canonical con sp_io::panic
//! handler canonical (que define panic_impl para no_std runtime).
//!
//! ## Path canonical resolución pending (Slice 2d canonical future)
//!
//! Requires deeper investigation canonical:
//! - Inverted feature tree exact culprit identification canonical
//! - Override canonical: `[patch.crates-io] serde = { ... }` con strict no-std
//! - O explicit `WASM_BUILD_RUSTFLAGS` canonical override
//! - O wait stable2512-4+ upstream canonical fix
//!
//! Mientras Slice 2d land canonical, build script canonical mantain no-op +
//! Slice 3 (v0.0.13) mock-WASM fallback canonical path estable canonical.
fn main() {
// No-op canonical — Slice 2d canonical land WASM_BINARY post serde/std
// leakage canonical resolution canonical. Slice 3 mock-WASM (chain_spec
// builder JSON canonical) sigue siendo el path canonical estable canonical.
}