[llvm-dev] How to objcopy via LLVM toolchain for armv7e-m ELF32LE? (original) (raw)
Leslie Zhai via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 13 18:07:44 PST 2017
- Previous message: [llvm-dev] How to objcopy via LLVM toolchain for armv7e-m ELF32LE?
- Next message: [llvm-dev] LLVM Weekly - #202, Nov 13th 2017
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi James,
Thanks for your kind response!
Jake has already provided the great patch https://reviews.llvm.org/D39977 The Flash Man :) so quick response to cover ARMmbed usecase for armv7e-m!
Thanks again for your great job!
在 2017年11月13日 22:27, James Henderson 写道: > Hi, >> At the moment, we've only added support for 64-bit Little Endian ELF > to llvm-objcopy, but I'm pretty sure most of the code should be able > to handle 32-bit ELF as well, with a patch such as the one you've > attached. Jake Ehrlich (CC'ed), who is the main developer on > llvm-objcopy should be able to give you a more complete answer. >> Regards, >> James >> On 13 November 2017 at 07:00, Leslie Zhai via llvm-dev > <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: >> Testcase: > https://github.com/xiangzhai/mini-arm-os/tree/llvm-toolchain/00-HelloWorld > <https://github.com/xiangzhai/mini-arm-os/tree/llvm-toolchain/00-HelloWorld> >> $ make > CC hello.c > CC startup.c > LD hello.elf > READ -> hello.rd > LIST -> hello.lst > COPY -> hello.bin > text data bss dec hex filename > 190 14 0 204 cc hello.elf >> $ make qemu > /data/project/qemustm32/arm-softmmu/qemu-system-arm -M stm32-p103 > -nographic -kernel hello.bin >> ... > LED Off > Hello World! >>> 在 2017年11月13日 14:14, Leslie Zhai 写道: >> Is it able to just workaround add ELF32LE? >>> diff --git a/tools/llvm-objcopy/llvm-objcopy.cpp > b/tools/llvm-objcopy/llvm-objcopy.cpp > index 54186f6..3234c65 100644 > --- a/tools/llvm-objcopy/llvm-objcopy.cpp > +++ b/tools/llvm-objcopy/llvm-objcopy.cpp > @@ -138,18 +138,19 @@ void SplitDWOToFile(const > ELFObjectFile &ObjFile, StringRef File) { > WriteObjectFile(DWOFile, File); > } >> -void CopyBinary(const ELFObjectFile &ObjFile) { > - std::uniqueptr<Object> Obj; > +template > +void CopyBinary(const ELFObjectFile &ObjFile) { > + std::uniqueptr<Object> Obj; >> if (!OutputFormat.empty() && OutputFormat != "binary") > error("invalid output format '" + OutputFormat + "'"); > if (!OutputFormat.empty() && OutputFormat == "binary") > - Obj = llvm::makeunique<BinaryObject>(ObjFile); > + Obj = llvm::makeunique<BinaryObject>(ObjFile); > else > - Obj = llvm::makeunique<ELFObject>(ObjFile); > + Obj = llvm::makeunique<ELFObject>(ObjFile); >> if (!SplitDWO.empty()) > - SplitDWOToFile(ObjFile, SplitDWO.getValue()); > + SplitDWOToFile(ObjFile, SplitDWO.getValue()); >> SectionPred RemovePred = [](const SectionBase &) { return > false; }; >> @@ -200,6 +201,9 @@ int main(int argc, char **argv) { > if (ELFObjectFile *o = > dyncast<ELFObjectFile>(&Binary)) { > CopyBinary(*o); > return 0; > + } else if (ELFObjectFile *o = > dyncast<ELFObjectFile>(&Binary)) { > + CopyBinary(*o); > + return 0; > } > reportError(InputFilename, objecterror::invalidfiletype); > } >>>> 在 2017年11月13日 11:32, Leslie Zhai 写道: >> Hi LLVM developers, >> As PR35281 mentioned: >> $ llvm-objcopy -O binary llvm-cortex-m7.elf llvm-cortex-m7.bin > llvm-objcopy: 'llvm-cortex-m7.elf': The file was not > recognized as a valid object file. >>> if (ELFObjectFile *o = > dyncast<ELFObjectFile>(&Binary)) > https://github.com/llvm-mirror/llvm/blob/master/tools/llvm-objcopy/llvm-objcopy.cpp#L200 > <https://github.com/llvm-mirror/llvm/blob/master/tools/llvm-objcopy/llvm-objcopy.cpp#L200> >>> Please give me some hints about objcopy armv7e-m ELF32LE > via LLVM toolchain, thanks a lot! >>>> -- > Regards, > Leslie Zhai - https://reviews.llvm.org/p/xiangzhai/ > <https://reviews.llvm.org/p/xiangzhai/> >> _________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev> >>
Regards, Leslie Zhai - https://reviews.llvm.org/p/xiangzhai/
- Previous message: [llvm-dev] How to objcopy via LLVM toolchain for armv7e-m ELF32LE?
- Next message: [llvm-dev] LLVM Weekly - #202, Nov 13th 2017
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]