Why do I get multiple .bc files?

Hi, I set RUSTFLAGS="--emit=llvm-bc" and compiled my rust code.
At the end of the compilation log, I got a "warning: ignoring emit path because multiple .bc files were produced" message.
Also, I got multiple llvm bc files. I am not sure why it generated multiple bc files.
The filenames were
rusty_tests-28o0novt6ed4s/s-fh7cmsfffz-fqieta-2l7e4ef4oofxd/w7omp4y9hiquvef.bc
rusty_tests-28o0novt6ed4s/s-fh7cmsfffz-fqieta-2l7e4ef4oofxd/4iuj66dk0gb52u5e.bc
rusty_tests-28o0novt6ed4s/s-fh7cmsfffz-fqieta-2l7e4ef4oofxd/1b16leawhiyrmh45.bc
rusty_tests-28o0novt6ed4s/s-fh7cmsfffz-fqieta-2l7e4ef4oofxd/3hi5d6zj63et252f.bc
rusty_tests-28o0novt6ed4s/s-fh7cmsfffz-fqieta-2l7e4ef4oofxd/4salh73uycqty1fg.bc
rusty_tests-28o0novt6ed4s/s-fh7cmsfffz-fqieta-2l7e4ef4oofxd/40fnqdz0unt7ji20.bc
rusty_tests-28o0novt6ed4s/s-fh7cmsfffz-fqieta-2l7e4ef4oofxd/1tulppvd79yke2g.bc

What are these files and how to get a proper bc file?

Try with -Ccodegen-units=1. By default, rustc splits into multiple units for parallelism, and then they each get their own output. ThinLTO merges them back together eventually, but I don't think you can get .bc of that.

Still I got many bc files.