Skip to content

-Zno-link is broken #77857

Closed
Closed
@bjorn3

Description

@bjorn3

I tried this command:

$ echo "fn main() {}" | rustc -Zno-link -

I expected to see this happen: An .rlink file is generated.

Instead, this happened:

thread 'rustc' panicked at 'cannot encode `DefIndex` with `rustc_serialize::json::Encoder`', /rustc/381b445ff5751f9f39ec672b623372dff09c276e/compiler/rustc_span/src/def_id.rs:135:9
stack backtrace:
   0: rust_begin_unwind
             at /rustc/381b445ff5751f9f39ec672b623372dff09c276e/library/std/src/panicking.rs:483
   1: std::panicking::begin_panic_fmt
             at /rustc/381b445ff5751f9f39ec672b623372dff09c276e/library/std/src/panicking.rs:437
   2: <rustc_span::def_id::DefIndex as rustc_serialize::serialize::Encodable<E>>::encode
   3: <rustc_serialize::json::Encoder as rustc_serialize::serialize::Encoder>::emit_struct
   4: <rustc_serialize::json::Encoder as rustc_serialize::serialize::Encoder>::emit_struct
   5: <rustc_serialize::json::Encoder as rustc_serialize::serialize::Encoder>::emit_seq
   6: <rustc_serialize::json::Encoder as rustc_serialize::serialize::Encoder>::emit_map
   7: <rustc_serialize::json::Encoder as rustc_serialize::serialize::Encoder>::emit_struct
   8: <rustc_serialize::json::Encoder as rustc_serialize::serialize::Encoder>::emit_struct
   9: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::link
  10: rustc_interface::queries::Linker::link
  11: rustc_span::with_source_map
  12: rustc_interface::interface::create_compiler_and_run
  13: scoped_tls::ScopedKey<T>::set

Meta

rustc --version --verbose:

rustc 1.48.0-nightly (381b445ff 2020-09-29)
binary: rustc
commit-hash: 381b445ff5751f9f39ec672b623372dff09c276e
commit-date: 2020-09-29
host: x86_64-unknown-linux-gnu
release: 1.48.0-nightly
LLVM version: 11.0

Originally posted by @bjorn3 in #77795 (comment)

cc @0dvictor (original implementer of -Zno-link

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-linkageArea: linking into static, shared libraries and binariesA-metadataArea: Crate metadataC-bugCategory: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.requires-nightlyThis issue requires a nightly compiler in some way.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions