Skip to content

Compiler panic at Yocto Scarthgap build #136232

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
orascheg opened this issue Jan 29, 2025 · 10 comments
Closed

Compiler panic at Yocto Scarthgap build #136232

orascheg opened this issue Jan 29, 2025 · 10 comments
Labels
C-bug Category: This is a bug. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ O-yocto Target: a Linux distro that builds everything from source and patches our build extensively T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@orascheg
Copy link

orascheg commented Jan 29, 2025

Yocto Scarthgap with pull from 29th January 2025.

local.conf:

#
# This file is your local configuration file and is where all local user settings
# are placed. The comments in this file give some guide to the options a new user
# to the system might want to change but pretty much any configuration option can
# be set in this file. More adventurous users can look at
# local.conf.sample.extended which contains other examples of configuration which
# can be placed in this file but new users likely won't need any of them
# initially. There's also site.conf.sample which contains examples of site specific
# information such as proxy server addresses.
#
# Lines starting with the '#' character are commented out and in some cases the
# default values are provided as comments to show people example syntax. Enabling
# the option is a question of removing the # character and making any change to the
# variable as required.

#
# Machine Selection
#
# You need to select a specific machine to target the build with. There are a selection
# of emulated machines available which can boot and run in the QEMU emulator:
#
#MACHINE ?= "qemuarm"
#MACHINE ?= "qemuarm64"
#MACHINE ?= "qemumips"
#MACHINE ?= "qemumips64"
#MACHINE ?= "qemuppc"
#MACHINE ?= "qemux86"
#MACHINE ?= "qemux86-64"
#
# There are also the following hardware board target machines included for 
# demonstration purposes:
#
#MACHINE ?= "beaglebone-yocto"
#MACHINE ?= "genericarm64"
#MACHINE ?= "genericx86"
#MACHINE ?= "genericx86-64"
#
# This sets the default machine to be qemux86-64 if no other machine is selected:
MACHINE ??= "intel-corei7-64"

# These are some of the more commonly used values. Looking at the files in the
# meta/conf/machine directory, or the conf/machine directory of any additional layers
# you add in will show all the available machines.

#
# Where to place downloads
#
# During a first build the system will download many different source code tarballs
# from various upstream projects. This can take a while, particularly if your network
# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
# can preserve this directory to speed up this part of subsequent builds. This directory
# is safe to share between multiple builds on the same machine too.
#
# The default is a downloads directory under TOPDIR which is the build directory.
#
DL_DIR ?= "${TOPDIR}/downloads"

#
# Where to place shared-state files
#
# BitBake has the capability to accelerate builds based on previously built output.
# This is done using "shared state" files which can be thought of as cache objects
# and this option determines where those files are placed.
#
# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
# from these files if no changes were made to the configuration. If changes were made
# to the configuration, only shared state files where the state was still valid would
# be used (done using checksums).
#
# The default is a sstate-cache directory under TOPDIR.
#
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"

#
# Where to place the build output
#
# This option specifies where the bulk of the building work should be done and
# where BitBake should place its temporary files and output. Keep in mind that
# this includes the extraction and compilation of many applications and the toolchain
# which can use Gigabytes of hard disk space.
#
# The default is a tmp directory under TOPDIR.
#
TMPDIR = "${TOPDIR}/tmp"

#
# Default policy config
#
# The distribution setting controls which policy settings are used as defaults.
# The default value is fine for general Yocto project use, at least initially.
# Ultimately when creating custom policy, people will likely end up subclassing 
# these defaults.
#
DISTRO ?= "poky"
# As an example of a subclass there is a "bleeding" edge policy configuration
# where many versions are set to the absolute latest code from the upstream 
# source control systems. This is just mentioned here as an example, its not
# useful to most new users.
# DISTRO ?= "poky-bleeding"

#
# Package Management configuration
#
# This variable lists which packaging formats to enable. Multiple package backends
# can be enabled at once and the first item listed in the variable will be used
# to generate the root filesystems.
# Options are:
#  - 'package_deb' for debian style deb files
#  - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
#  - 'package_rpm' for rpm style packages
# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
# OE-Core defaults to ipkg, whilst Poky defaults to rpm:
PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"

#
# SDK target architecture
#
# This variable specifies the architecture to build SDK items for and means
# you can build the SDK packages for architectures other than the machine you are
# running the build on (i.e. building i686 packages on an x86_64 host).
# Supported values are i686, x86_64, aarch64
#SDKMACHINE ?= "i686"

#
# Extra image configuration defaults
#
# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
# images. Some of these options are added to certain image types automatically. The
# variable can contain the following options:
#  "dbg-pkgs"       - add -dbg packages for all installed packages
#                     (adds symbol information for debugging/profiling)
#  "src-pkgs"       - add -src packages for all installed packages
#                     (adds source code for debugging)
#  "dev-pkgs"       - add -dev packages for all installed packages
#                     (useful if you want to develop against libs in the image)
#  "ptest-pkgs"     - add -ptest packages for all ptest-enabled packages
#                     (useful if you want to run the package test suites)
#  "tools-sdk"      - add development tools (gcc, make, pkgconfig etc.)
#  "tools-debug"    - add debugging tools (gdb, strace)
#  "eclipse-debug"  - add Eclipse remote debugging support
#  "tools-profile"  - add profiling tools (oprofile, lttng, valgrind)
#  "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
#  "debug-tweaks"   - make an image suitable for development
#                     e.g. ssh root access has a blank password
# There are other application targets that can be used here too, see
# meta/classes-recipe/image.bbclass and
# meta/classes-recipe/core-image.bbclass for more details.
# We default to enabling the debugging tweaks.
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"

#add chromium to the image
IMAGE_INSTALL:append = " chromium-ozone-wayland ros-core"

#
# Additional image features
#
# The following is a list of additional classes to use when building images which
# enable extra features. Some available options which can be included in this variable
# are:
#   - 'buildstats' collect build statistics
USER_CLASSES ?= "buildstats "

#
# Runtime testing of images
#
# The build system can test booting virtual machine images under qemu (an emulator)
# after any root filesystems are created and run tests against those images. It can also
# run tests against any SDK that are built. To enable this uncomment these lines.
# See meta/classes-recipe/test{image,sdk}.bbclass for further details.
#IMAGE_CLASSES += "testimage testsdk"
#TESTIMAGE_AUTO:qemuall = "1"

#
# Interactive shell configuration
#
# Under certain circumstances the system may need input from you and to do this it
# can launch an interactive shell. It needs to do this since the build is
# multithreaded and needs to be able to handle the case where more than one parallel
# process may require the user's attention. The default is iterate over the available
# terminal types to find one that works.
#
# Examples of the occasions this may happen are when resolving patches which cannot
# be applied, to use the devshell or the kernel menuconfig
#
# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
# Note: currently, Konsole support only works for KDE 3.x due to the way
# newer Konsole versions behave
#OE_TERMINAL = "auto"
# By default disable interactive patch resolution (tasks will just fail instead):
PATCHRESOLVE = "noop"

#
# Disk Space Monitoring during the build
#
# Monitor the disk space during the build. If there is less that 1GB of space or less
# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
# shutdown the build. If there is less than 100MB or 1K inodes, perform a hard halt
# of the build. The reason for this is that running completely out of space can corrupt
# files and damages the build in ways which may not be easily recoverable.
# It's necessary to monitor /tmp, if there is no space left the build will fail
# with very exotic errors.
BB_DISKMON_DIRS ??= "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    STOPTASKS,/tmp,100M,100K \
    HALT,${TMPDIR},100M,1K \
    HALT,${DL_DIR},100M,1K \
    HALT,${SSTATE_DIR},100M,1K \
    HALT,/tmp,10M,1K"

#
# Shared-state files from other locations
#
# As mentioned above, shared state files are prebuilt cache data objects which can be
# used to accelerate build time. This variable can be used to configure the system
# to search other mirror locations for these objects before it builds the data itself.
#
# This can be a filesystem directory, or a remote url such as https or ftp. These
# would contain the sstate-cache results from previous builds (possibly from other
# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
# cache locations to check for the shared objects.
# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
# at the end as shown in the examples below. This will be substituted with the
# correct path within the directory structure.
#SSTATE_MIRRORS ?= "\
#file://.* https://someserver.tld/share/sstate/PATH;downloadfilename=PATH \
#file://.* file:///some/local/dir/sstate/PATH"

#
# Yocto Project SState Mirror
#
# The Yocto Project has prebuilt artefacts available for its releases, you can enable
# use of these by uncommenting some of the following lines. This will mean the build uses
# the network to check for artefacts at the start of builds, which does slow it down
# initially but it will then speed up the builds by not having to build things if they are
# present in the cache. It assumes you can download something faster than you can build it
# which will depend on your network.
# Note: For this to work you also need hash-equivalence passthrough to the matching server
# There is a choice between our sstate server directly and a faster content delivery network
# (CDN) kindly provided by JSDelivr, uncomment one of the SSTATE_MIRRORS lines, not both.
# Using the CDN rather than the yoctoproject.org address is suggested/preferred.
#
#BB_HASHSERVE_UPSTREAM = 'wss://hashserv.yoctoproject.org/ws'
#SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH"
#
###SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH"


#
# Qemu configuration
#
# By default native qemu will build with a builtin VNC server where graphical output can be
# seen. The line below enables the SDL UI frontend too.
PACKAGECONFIG:append:pn-qemu-system-native = " sdl"
# By default libsdl2-native will be built, if you want to use your host's libSDL instead of 
# the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
#ASSUME_PROVIDED += "libsdl2-native"

# You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds
# a handy set of menus for controlling the emulator.
#PACKAGECONFIG:append:pn-qemu-system-native = " gtk+"

#
# Hash Equivalence
#
# Enable support for automatically running a local hash equivalence server and
# instruct bitbake to use a hash equivalence aware signature generator. Hash
# equivalence improves reuse of sstate by detecting when a given sstate
# artifact can be reused as equivalent, even if the current task hash doesn't
# match the one that generated the artifact.
#
# A shared hash equivalent server can be set with "<HOSTNAME>:<PORT>" format
#
BB_HASHSERVE = "auto"
BB_SIGNATURE_HANDLER = "OEEquivHash"

#
# Memory Resident Bitbake
#
# Bitbake's server component can stay in memory after the UI for the current command
# has completed. This means subsequent commands can run faster since there is no need
# for bitbake to reload cache files and so on. Number is in seconds, after which the
# server will shut down.
#
#BB_SERVER_TIMEOUT = "60"

# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
# track the version of this file when it was generated. This can safely be ignored if
# this doesn't mean anything to you.
CONF_VERSION = "2"

# create a RT kernel
LINUX_KERNEL_TYPE = "preempt-rt"

bblayers.conf:
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /home/ubuntu/projects/Scarthgap/poky/meta \
  /home/ubuntu/projects/Scarthgap/poky/meta-poky \
  /home/ubuntu/projects/Scarthgap/poky/meta-yocto-bsp \
  /home/ubuntu/projects/Scarthgap/poky/meta-intel \
  /home/ubuntu/projects/Scarthgap/meta-clang \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-filesystems \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-gnome \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-initramfs \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-multimedia \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-networking \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-oe \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-perl \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-python \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-webserver \
  /home/ubuntu/projects/Scarthgap/meta-openembedded/meta-xfce \
  /home/ubuntu/projects/Scarthgap/meta-browser/meta-chromium \
  /home/ubuntu/projects/Scarthgap/meta-lts-mixins \
  /home/ubuntu/projects/Scarthgap/meta-ros/meta-ros2 \
  /home/ubuntu/projects/Scarthgap/meta-ros/meta-ros-common \  
  /home/ubuntu/projects/Scarthgap/meta-ros/meta-ros2-humble \
  "

Platform Ubuntu 20.04

Log file tail from error onwards:

    Building [==========>              ] 110/235: toml_edit, regex-syntax, ...
     Running `rustc --crate-name regex_syntax --edition=2021 /home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/cargo_home/bitbake/regex-syntax-0.8.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="std"' --cfg 'feature="unicode"' --cfg 'feature="unicode-age"' --cfg 'feature="unicode-bool"' --cfg 'feature="unicode-case"' --cfg 'feature="unicode-gencat"' --cfg 'feature="unicode-perl"' --cfg 'feature="unicode-script"' --cfg 'feature="unicode-segment"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("arbitrary", "default", "std", "unicode", "unicode-age", "unicode-bool", "unicode-case", "unicode-gencat", "unicode-perl", "unicode-script", "unicode-segment"))' -C metadata=a962f06e3a21dfee -C extra-filename=-a962f06e3a21dfee --out-dir /home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build/target/x86_64-poky-linux-gnu/release/deps --target x86_64-poky-linux-gnu -C linker=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/wrapper/target-rust-ccld -C strip=debuginfo -L dependency=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build/target/x86_64-poky-linux-gnu/release/deps -L dependency=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build/target/release/deps --cap-lints allow -L /home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/recipe-sysroot/usr/lib/rustlib/x86_64-poky-linux-gnu/lib --remap-path-prefix=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2=/usr/src/debug/librsvg/2.58.2`
thread 'rustc' panicked at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/compiler/rustc_codegen_ssa/src/mir/operand.rs:206:9:
assertion failed: alloc_align >= layout.align.abi
stack backtrace:
   0:     0x7f797cea9325 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hdea6479c5b883b27
   1:     0x7f797cef78cb - core::fmt::write::hb6eae9e3e47ab44c
   2:     0x7f797ce9e90f - <unknown>
   3:     0x7f797cea90fe - <unknown>
   4:     0x7f797ceabb39 - <unknown>
   5:     0x7f797ceab8da - std::panicking::default_hook::h97cf695e44e847a8
   6:     0x7f797d972a4c - <unknown>
   7:     0x7f797ceac1fb - std::panicking::rust_panic_with_hook::h03f56cd2b346de28
   8:     0x7f797ceabf3b - <unknown>
   9:     0x7f797cea97e9 - <unknown>
  10:     0x7f797ceabca7 - rust_begin_unwind
  11:     0x7f797ce70aa3 - core::panicking::panic_fmt::h526c2699f91e3c3b
  12:     0x7f797ce70b4c - core::panicking::panic::h431f4c1c4bfa6919
  13:     0x7f797db5b328 - <unknown>
  14:     0x7f797db807dd - <unknown>
  15:     0x7f797dc1e6b0 - <unknown>
  16:     0x7f797dc66d95 - <rustc_codegen_llvm[6731ebd72d0cf856]::LlvmCodegenBackend as rustc_codegen_ssa[cd61dbb9a816c25f]::traits::backend::ExtraBackendMethods>::compile_codegen_unit
  17:     0x7f797dc6dee9 - <rustc_codegen_llvm[6731ebd72d0cf856]::LlvmCodegenBackend as rustc_codegen_ssa[cd61dbb9a816c25f]::traits::backend::CodegenBackend>::codegen_crate
  18:     0x7f797db4b849 - rustc_interface[5361d4fcf51fde21]::passes::start_codegen
  19:     0x7f797db52311 - <rustc_interface[5361d4fcf51fde21]::queries::Queries>::codegen_and_build_linker
  20:     0x7f797d977600 - <unknown>
  21:     0x7f797d964957 - <unknown>
  22:     0x7f797d97e1f8 - <unknown>
  23:     0x7f797ceb619b - <unknown>
  24:     0x7f797cccbb62 - start_thread
  25:     0x7f797cd4663c - __clone3
  26:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.80.1 (3f5fd8dd4 2024-08-06) (built from a source tarball) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -C opt-level=3 -C embed-bitcode=no -C linker=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/wrapper/target-rust-ccld -C strip=debuginfo

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
end of query stack
error: could not compile `rayon` (lib)

Caused by:
  process didn't exit successfully: `rustc --crate-name rayon --edition=2021 /home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/cargo_home/bitbake/rayon-1.8.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("web_spin_lock"))' -C metadata=a8b74724f5997454 -C extra-filename=-a8b74724f5997454 --out-dir /home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build/target/x86_64-poky-linux-gnu/release/deps --target x86_64-poky-linux-gnu -C linker=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/wrapper/target-rust-ccld -C strip=debuginfo -L dependency=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build/target/x86_64-poky-linux-gnu/release/deps -L dependency=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build/target/release/deps --extern either=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build/target/x86_64-poky-linux-gnu/release/deps/libeither-2cf87c3467584048.rmeta --extern rayon_core=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build/target/x86_64-poky-linux-gnu/release/deps/librayon_core-c5471339dfcead2a.rmeta --cap-lints allow -L /home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/recipe-sysroot/usr/lib/rustlib/x86_64-poky-linux-gnu/lib --remap-path-prefix=/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2=/usr/src/debug/librsvg/2.58.2` (exit status: 101)
warning: build failed, waiting for other jobs to finish...
    Building [==========>              ] 111/235: toml_edit, regex-syntax, ...
    Building [==========>              ] 112/235: toml_edit, regex-syntax, ...
    Building [===========>             ] 113/235: toml_edit, regex-syntax, ...
    Building [===========>             ] 114/235: toml_edit, regex-syntax, ...
    Building [===========>             ] 115/235: toml_edit, regex-syntax, ...
    Building [===========>             ] 116/235: regex-syntax, toml_edit, ...
    Building [===========>             ] 117/235: regex-syntax, aho-corasic...
    Building [===========>             ] 118/235: regex-syntax, aho-corasick  
    Building [===========>             ] 119/235: regex-syntax                
make[2]: Leaving directory '/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build'
make[2]: *** [Makefile:1633: librsvg_c_api.la] Error 101
make[1]: Leaving directory '/home/ubuntu/projects/Scarthgap/poky/build/tmp/work/corei7-64-poky-linux/librsvg/2.58.2/build'
make[1]: *** [Makefile:1153: all-recursive] Error 1
make: *** [Makefile:788: all] Error 2
ERROR: oe_runmake failed
WARNING: exit code 1 from a shell command.

Code

<code>

Meta

rustc --version --verbose:

<version>

Error output

<output>
Backtrace

<backtrace>

@orascheg orascheg added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jan 29, 2025
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Jan 29, 2025
@orascheg orascheg changed the title Compiler panic at Yocto Scarthgap build Compiler panic at Yocto Scarthgap build (sorry, was not aware of markup, when copying local,conf in) Jan 29, 2025
@ChrisDenton
Copy link
Member

You can use triple backticks for sections of code. For example:

```
code goes here
```

I edited your post to add them.

@orascheg
Copy link
Author

orascheg commented Jan 29, 2025

Build configuration was:

uild Configuration:
BB_VERSION           = "2.8.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "x86_64-poky-linux"
MACHINE              = "intel-corei7-64"
DISTRO               = "poky"
DISTRO_VERSION       = "5.0.7"
TUNE_FEATURES        = "m64 corei7"
TARGET_FPU           = ""
DISTRO_NAME          = "Poky (Yocto Project Reference Distro)"
ROS_DISTRO           = "humble"
ROS_VERSION          = "2"
ROS_PYTHON_VERSION   = "3"
meta                 
meta-poky            
meta-yocto-bsp       = "my-scarthgap:7dad83c7e5e9637c0ff5d5712409611fd4a14946"
meta-intel           = "scarthgap:db4f44628642244c9880771d29fe0ce6531a406f"
meta-clang           = "scarthgap:8c77b427408db01b8de4c04bd3d247c13c154f92"
meta-filesystems     
meta-gnome           
meta-initramfs       
meta-multimedia      
meta-networking      
meta-oe              
meta-perl            
meta-python          
meta-webserver       
meta-xfce            = "scarthgap:dda0d53326017d6758ec6bdfdaf2f484c089d13f"
meta-chromium        = "scarthgap:0c43dd66e951624415516bdefcd7a7a8a641fbc3"
meta-lts-mixins      = "scarthgap/rust:7e6b83c16f743d12ad4c10cf44d2a84760c8206b"
meta-ros2            
meta-ros-common      
meta-ros2-humble     = "scarthgap:5070dfa9c7a357a811bec4a0cca7aa25b904a12b"

@orascheg orascheg changed the title Compiler panic at Yocto Scarthgap build (sorry, was not aware of markup, when copying local,conf in) Compiler panic at Yocto Scarthgap build Jan 29, 2025
@saethlin saethlin removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Jan 29, 2025
@saethlin
Copy link
Member

You are reporting this against 1.80 but the latest stable is 1.84. Can you reproduce this on the latest stable? Or nightly?

@saethlin saethlin added the E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example label Jan 29, 2025
@workingjubilee workingjubilee added the O-yocto Target: a Linux distro that builds everything from source and patches our build extensively label Jan 29, 2025
@workingjubilee
Copy link
Member

workingjubilee commented Jan 29, 2025

thread 'rustc' panicked at ...compiler/rustc_codegen_ssa/src/mir/operand.rs:206:9:
assertion failed: alloc_align >= layout.align.abi

@orascheg Yocto seems to support many customizations of its list of targets that we do not. Please include the target spec definition that you are using for this build, if you are aware of one.

@saethlin
Copy link
Member

saethlin commented Jan 29, 2025

I suspect this is just a duplicate of #127396, which is why I'm asking if this still crashes on stable.

@workingjubilee
Copy link
Member

workingjubilee commented Jan 29, 2025

yeah, it looks like poky's latest rust is actually 1.81.0 which would have fixed this issue if you're correct.

@workingjubilee
Copy link
Member

scarthgap is apparently poky 5.0.6 which does not include that rust version bump, so it's far out of support for us.

@orascheg
Copy link
Author

Target is amd64 or x86_64 in Yocto speak. I will try to switch to 1.81.0 and test if it still crashing. If so, I will do a report at Yocto project with the request to update meta-lts-mixins

@orascheg
Copy link
Author

orascheg commented Feb 1, 2025

scarthgap is apparently poky 5.0.6 which does not include that rust version bump, so it's far out of support for us.

Therefore, meta-lts-mixin is used (branch scarthgap/rust). This layer enables integration of newer component versions into the long term service (LTS) releases, which is currently at rust version 1.80.1. This was working fine until some component was making the rust panic showing up (with the pull from 29th January)
I have tried to port back version rust 1.81.0 from Yocto branch master. However, I experience problems with cargo ($WORKDIR is ńot properly set for it in Scarthgap). It seems that rust is a lot faster innovating than Yocto and the build environment in Yocto is not so trivial... I am still working on it.

@orascheg
Copy link
Author

orascheg commented Feb 1, 2025

Now I have managed to get the back-port running. (it was the introduction of $UNPACKDIR in the newer Yocto variants). The bug is fixed in 1.81.0. Thank you all for your support.

@orascheg orascheg closed this as completed Feb 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ O-yocto Target: a Linux distro that builds everything from source and patches our build extensively T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

5 participants