In attempting to add a backend I came across the documentation here: http://llvm.org/docs/WritingAnLLVMBackend.html The section on the build system seems to be out of date, or maybe I don't understand it. I copied the Sparc target to a directory (Foo for the example), added Foo to the subdirectories list in llvm\lib\Target\LLVMBuild.txt and to LLVM_ALL_TARGETS in llvm\CMakeLists.txt. I removed the files except for FooTargetMachine.cpp and FooTargetMachine.h. FooTargetMachine is not completed yet, but I was trying to compile and get linker errors about _LLVMInitializeFooTargetMC referenced in function void llvm::InitializeAllTargetMCs(void). I do not see anything about how to implement this function. Is there additional documentation about how to implement a backend that I am missing? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150313/3371d43a/attachment.html>
This function is autogenerated. You need also to change top-level configure / cmake files. On Sat, Mar 14, 2015 at 8:38 AM, Daniel Dilts <diltsman at gmail.com> wrote:> In attempting to add a backend I came across the documentation here: > http://llvm.org/docs/WritingAnLLVMBackend.html > > The section on the build system seems to be out of date, or maybe I don't > understand it. I copied the Sparc target to a directory (Foo for the > example), added Foo to the subdirectories list in > llvm\lib\Target\LLVMBuild.txt and to LLVM_ALL_TARGETS in > llvm\CMakeLists.txt. I removed the files except for FooTargetMachine.cpp > and FooTargetMachine.h. > > FooTargetMachine is not completed yet, but I was trying to compile and get > linker errors about _LLVMInitializeFooTargetMC referenced in function void > llvm::InitializeAllTargetMCs(void). I do not see anything about how to > implement this function. > > Is there additional documentation about how to implement a backend that I am > missing? > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University
Yes, llvm::InitializeAllTargetMCs(void) does seem to be autogenerated. It is _LLVMInitializeFooTargetMC that I can't find documented anywhere. On Sat, Mar 14, 2015 at 12:05 AM, Anton Korobeynikov < anton at korobeynikov.info> wrote:> This function is autogenerated. You need also to change top-level > configure / cmake files. > > On Sat, Mar 14, 2015 at 8:38 AM, Daniel Dilts <diltsman at gmail.com> wrote: > > In attempting to add a backend I came across the documentation here: > > http://llvm.org/docs/WritingAnLLVMBackend.html > > > > The section on the build system seems to be out of date, or maybe I don't > > understand it. I copied the Sparc target to a directory (Foo for the > > example), added Foo to the subdirectories list in > > llvm\lib\Target\LLVMBuild.txt and to LLVM_ALL_TARGETS in > > llvm\CMakeLists.txt. I removed the files except for FooTargetMachine.cpp > > and FooTargetMachine.h. > > > > FooTargetMachine is not completed yet, but I was trying to compile and > get > > linker errors about _LLVMInitializeFooTargetMC referenced in function > void > > llvm::InitializeAllTargetMCs(void). I do not see anything about how to > > implement this function. > > > > Is there additional documentation about how to implement a backend that > I am > > missing? > > > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > > > -- > With best regards, Anton Korobeynikov > Faculty of Mathematics and Mechanics, Saint Petersburg State University >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150314/6559f480/attachment.html>