Scarthgap: Chromium 132 build fails with Rust allocator symbol errors on Verdin i.MX8MP

Hi, I’m using a Verdin i.MX8M Plus module with a Mallow carrier board, and I’m trying to build the Toradex Chromium image (scarthgap) by following this guide.

my local.conf has
Chromium

CORE_IMAGE_EXTRA_INSTALL += “chromium-x11”
LICENSE_FLAGS_ACCEPTED += “commercial_libav commercial_x264”

And in bblayers.conf I have added:
meta-openembedded/meta-lts-mixins (branch: scarthgap/rust)
meta-openembedded/meta-clang
meta-browser/meta-chromium

While building, chromium fails with this error:

…/chromium-x11/…/yocto_native/prebuilt_rustc_sysroot/…
ld.lld: error: undefined symbol: __rustc::__rust_alloc_zeroed
ld.lld: error: undefined symbol: __rustc::__rust_alloc_error_handler_should_panic
ld.lld: error: undefined symbol: __rustc::__rust_alloc_error_handler
ninja: build stopped: subcommand failed.

What’s the recommended fix for this on scarthgap?

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Building Chromium for Verdin iMX8M Plus with Mallow Carrier Board

Based on the official Toradex documentation for building Chromium on BSP 7.x.y (Scarthgap), you need to use the chromium-ozone-wayland package instead of chromium-x11 (1).

Required Configuration Changes

  1. Update your local.conf with the correct Chromium package (1):
CORE_IMAGE_EXTRA_INSTALL += "chromium-ozone-wayland"

(1)

  1. Ensure you have the meta-clang layer cloned in the correct location. The documentation specifies that Chromium packages use the Clang compiler, so you need the meta-clang layer inside the meta-openembedded layers directory (1):
$ cd ${LAYERDIR}/meta-openembedded/
$ git clone -b scarthgap https://github.com/kraj/meta-clang.git

(1)

Hardware Compatibility

Your hardware combination is well-supported:

  • Verdin iMX8M Plus: Features dual Cortex-A53 cores, 2GB LPDDR4, and includes 2D/3D graphics acceleration capabilities (2)
  • Mallow Carrier Board V1.1: Compatible with Verdin modules and provides USB 3.x host interfaces through its four-port USB hub (3)

Troubleshooting the Rust Linker Error

The __rustc linker errors you’re encountering are typically resolved by:

  1. Using the correct Chromium variant: chromium-ozone-wayland instead of chromium-x11
  2. Ensuring proper layer order in your bblayers.conf
  3. Verifying meta-clang is properly integrated as shown above

The Wayland-based Chromium variant is specifically designed for proper GPU acceleration support on iMX platforms (1).

Expected Display Output

Once built correctly, your Verdin iMX8M Plus supports multiple display interfaces including HDMI output with differential data channels (4), making it suitable for Chromium browser applications.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

@nidhishende this is a known rust issue, to build chromium 132, you can use an older rust like 1.85.1.