phil-opp / blog_os

Writing an OS in Rust
http://os.phil-opp.com
Apache License 2.0
15.82k stars 1.09k forks source link

Compile error on Post-3.2: could not compile `rustc-std-workspace-core` #1334

Open daihuasheng opened 4 months ago

daihuasheng commented 4 months ago

I know edition-3 is WIP, so sorry for bothering. I have tried edition-2 and be curious of what is different in new version. I cloned the branch post-3.2 and run cargo build immediately, which received:

 Compiling rustc-std-workspace-core v1.99.0 (/home/dhs/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
  error: data-layout for target `i386-code16-stage-2-5063592404793443119`, `e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128`, differs from LLVM target's `i386-unknown-none-code16` default layout, `e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128`

Version of toolchains:

rustc 1.81.0-nightly (20ae37c18 2024-07-07)
binary: rustc
commit-hash: 20ae37c18df95f9246c019b04957d23b4164bf7a
commit-date: 2024-07-07
host: x86_64-unknown-linux-gnu
release: 1.81.0-nightly
LLVM version: 18.1.7

Appreciate for you help, thank you!

AtomicGamer9523 commented 1 month ago

Did you modify anything? Yes: Could you please share your modified code No: cargo clean, and try rebuilding. Not exactly sure how you got there. No & Doesn't work?: How did you install rust, via rustup ?

tsatke commented 1 month ago

Between edition 2 and 3, there were changes in LLVM regarding the alignment of i128. You need to update the layout definition in your target file. See #1292 and rust-osdev/bootloader#420 .