yaxunl marked an inline comment as done. yaxunl added a comment. In D138221#3942095 <https://reviews.llvm.org/D138221#3942095>, @MaskRay wrote:
> In D138221#3941173 <https://reviews.llvm.org/D138221#3941173>, @yaxunl wrote: > >> In D138221#3939384 <https://reviews.llvm.org/D138221#3939384>, @MaskRay >> wrote: >> >>>> Some host relocatable objects may not contain device relocatable objects, >>>> where an empty file is passed to lld, which causes lld to fail. >>> >>> How is an empty file (size=0) passed to lld? If a dummy relocatable object >>> file is parsed to lld, lld can infer the machine type from `e_machine` in >>> the ELF header. >>> How does it work in other cases? Because a non-empty relocatable object >>> file is used? >>> >>> I do not object to a new emulation which does not exist in GNU ld, but the >>> description needs to be clarified. >> >> Updated description. The empty file is generated by clang-offload-bundler, >> which does not know how to create a dummy relocatable object file for a >> device target. > > A size=0 file is handled as a linker script, not a relocatable object file. > The empty linker script has no-op. I see. We got into a situation where all input files were empty and lld emitted the error: lld: error: target emulation unknown: -m or at least one .o file required adding -m fixes that. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138221/new/ https://reviews.llvm.org/D138221 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits