yaxunl marked an inline comment as done.
yaxunl added a comment.

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.



================
Comment at: lld/ELF/Driver.cpp:179
           .Case("msp430elf", {ELF32LEKind, EM_MSP430})
+          .Case("elf64_amdgpu", {ELF64LEKind, EM_AMDGPU})
           .Default({ELFNoneKind, EM_NONE});
----------------
MaskRay wrote:
> This needs an `emulation-amdgpu.s` test.
added


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

Reply via email to