Skip to content

I cannot build post-02 bootimage on rustc 1.66.0-nightly (db0597f56 2022-10-11) #1158

@ghost

Description

my environment

rustup show

Default host: x86_64-pc-windows-msvc
rustup home:  C:\Users\chen2\.rustup

installed toolchains
--------------------

stable-x86_64-pc-windows-msvc (default)
nightly-x86_64-pc-windows-msvc

active toolchain
----------------

nightly-x86_64-pc-windows-msvc (overridden by 'C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\rust-toolchain')
rustc 1.66.0-nightly (db0597f56 2022-10-11)

bootimage --version

bootimage 0.10.3

cargo --version

cargo 1.66.0-nightly (3cdf1ab25 2022-10-07)

git branch

  main
* post-02

build

PS C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os> cargo clean
PS C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os> cargo build
   Compiling compiler_builtins v0.1.82
   Compiling core v0.0.0 (C:\Users\chen2\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core)
   Compiling bootloader v0.9.23
   Compiling rustc-std-workspace-core v1.99.0 (C:\Users\chen2\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
   Compiling blog_os v0.1.0 (C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os)
    Finished dev [unoptimized + debuginfo] target(s) in 11.54s
PS C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os> cargo install bootimage
    Updating `ustc` index
     Ignored package `bootimage v0.10.3` is already installed, use --force to override
PS C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os> cargo bootimage -v
WARNING: `CARGO_MANIFEST_DIR` env variable not set
Building kernel
       Fresh core v0.0.0 (C:\Users\chen2\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core)
       Fresh rustc-std-workspace-core v1.99.0 (C:\Users\chen2\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
       Fresh compiler_builtins v0.1.82
       Fresh bootloader v0.9.23
       Fresh blog_os v0.1.0 (C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os)
    Finished dev [unoptimized + debuginfo] target(s) in 0.06s
Building bootloader
   Compiling compiler_builtins v0.1.82
   Compiling core v0.0.0 (C:\Users\chen2\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core)
   Compiling serde v1.0.116
   Compiling bitflags v1.2.1
   Compiling x86_64 v0.14.7
   Compiling llvm-tools v0.1.1
   Compiling toml v0.5.6
   Compiling bootloader v0.9.23 (C:\Users\chen2\.cargo\registry\src\mirrors.ustc.edu.cn-61ef6e0cd06fb9b8\bootloader-0.9.23)
   Compiling rustc-std-workspace-core v1.99.0 (C:\Users\chen2\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
   Compiling zero v0.1.2
   Compiling volatile v0.4.4
   Compiling bit_field v0.10.1
   Compiling xmas-elf v0.6.2
   Compiling usize_conversions v0.2.0
   Compiling fixedvec v0.2.4
   Compiling rlibc v1.0.0
error: linking with `rust-lld` failed: exit code: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "C:\\Users\\chen2\\AppData\\Local\\Temp\\rustcGxpvz0\\symbols.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.0.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.10.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.11.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.12.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.13.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.14.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.15.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.2.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.3.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.4.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.5.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.6.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.7.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.8.rcgu.o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d.bootloader.3718698b-cgu.9.rcgu.o" "--as-needed" "-L" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps" "-L" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\release\\deps" "-L" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\build\\bootloader-db75ac76a186a061\\out" "-L" "C:\\Users\\chen2\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-bootloader\\lib" "-Bstatic" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libxmas_elf-9854980f4ce4d900.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libzero-4971f46a293b6bab.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libx86_64-81f2acc522b3e945.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libvolatile-ff7a1c1b70556de2.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libbitflags-0dc0c70846831d70.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libbit_field-07031cf5ee72cfe3.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libusize_conversions-a69361252f938460.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libfixedvec-c384aabf84ed7b66.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libbootloader-08c934a79fc62dec.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\librlibc-2295bf2fcec3f649.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\librustc_std_workspace_core-eed85230e399e6a5.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libcore-c8198d4fd7cf0737.rlib" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\libcompiler_builtins-341758b0438265c8.rlib" "-Bdynamic" "--eh-frame-hdr" "-znoexecstack" "-L" "C:\\Users\\chen2\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-bootloader\\lib" "-o" "C:\\Users\\chen2\\Documents\\SourceCode\\os_in_rust\\blog_os\\target\\bootimage\\bootloader\\x86_64-bootloader\\release\\deps\\bootloader-894afd283b20060d" "--gc-sections" "-O1"
  = note: rust-lld: error: undefined symbol: _rest_of_bootloader_start_addr
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot-first-stage+0x60)
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot-first-stage+0x7B)

          rust-lld: error: undefined symbol: _rest_of_bootloader_end_addr
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot-first-stage+0x81)

          rust-lld: error: undefined symbol: _kernel_buffer
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x59)

          rust-lld: error: undefined symbol: _memory_map
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0xCA)
          >>> referenced by main.rs:108 (src\main.rs:108)
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(stage_4)

          rust-lld: error: undefined symbol: __page_table_start
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x1A1)
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x20C)
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x219)
          >>> referenced 2 more times

          rust-lld: error: undefined symbol: __page_table_end
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x1A6)
          >>> referenced by main.rs:111 (src\main.rs:111)
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(stage_4)
          >>> referenced by main.rs:105 (src\main.rs:105)
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(stage_4)

          rust-lld: error: undefined symbol: _p3
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x1B4)
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x1C9)

          rust-lld: error: undefined symbol: _p4
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x1BC)
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x24C)
          >>> referenced by main.rs:114 (src\main.rs:114)
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(stage_4)
          >>> referenced 1 more times

          rust-lld: error: undefined symbol: _p2
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x1C1)
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x1D6)
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x1FB)

          rust-lld: error: undefined symbol: _p1
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x1CE)
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x231)
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x371)

          rust-lld: error: undefined symbol: __bootloader_end
          >>> referenced by bootloader.3718698b-cgu.1
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(.boot+0x221)
          >>> referenced by main.rs:113 (src\main.rs:113)
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(stage_4)
          >>> referenced by main.rs:105 (src\main.rs:105)
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(stage_4)

          rust-lld: error: undefined symbol: __bootloader_start
          >>> referenced by main.rs:112 (src\main.rs:112)
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(stage_4)
          >>> referenced by main.rs:105 (src\main.rs:105)
          >>>               C:\Users\chen2\Documents\SourceCode\os_in_rust\blog_os\target\bootimage\bootloader\x86_64-bootloader\release\deps\bootloader-894afd283b20060d.bootloader.3718698b-cgu.1.rcgu.o:(stage_4)


error: could not compile `bootloader` due to previous error
Error: Bootloader build failed.
Stderr:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions