As a workaround you could take libcore-.rlib from somewere in the sysroot (rustc --print sysroot) and use ar x to extract it. One of the files has bc as an extension. I believe it is compressed with flate2, so you will have to decompress it. This is an implementation detail, so it can change at any moment.
What exactly are you getting as an error? rustc --emit=llvm-ir kind of works for me (e.g. it is what cargo llvm-ir uses) and dumps llvm-ir, you could then compile that to bytecode manually.
The latter two sounds like an edition import handling difference; make sure you compile the crates in the correct edition (I think all the stdlib crates are edition2018).
once you ar x to extract the rlib file, the .bc.z file is not in flate2 format, it is flate2 with customized header, exact description is here:
RUST_OBJECT format
the decompressing code is in same rs file.
I am not aware of any standalone utility to decode this format, but with link above, not hard to create one.