It's not so easy to create a linker that has all the bells and whistles, especially on windows. You have to look at the totality of options, linker files, shared objects, etc. It's not a weekend project. If you want to read the elf manual and gnu ld and then write a new one you could do that. Clang can easily be fixed to incorporate it either as a default or as an optional linker. The GNU ld for mingw must know a lot about windows linking but probably not all. In some worlds Coff format is still relevant. Microsoft has their own form of Coff that they use even today. Back in the early days of Windows NT I wrote one for that OS because Microsoft stopped distributing one with the OS and spent a lot of time reverse engineering Microsofts until I could really do all that it could do. Traditionally the OS manufacturer wrote the linker and did not document things well enough for someone else to. Clang is not just for linux; people are going to build embedded bare metal apps and the OS itself (linux for example) and need many obscure features. I think writing a new elf linker for linux and bare metal is possible but I would forget about supporting COFF and Microsoft format and other OS's like BSD or at least leave that open for someone else to add that can really add all the bells and whistles for that OS. reed On 05/14/2011 07:35 AM, Justin Holewinski wrote:> On Fri, May 13, 2011 at 2:20 PM, Hans Stimer <hans.stimer at gmail.com > <mailto:hans.stimer at gmail.com>> wrote: > > It appears that when you link bitcode files into a native > executable using llvm-ld, that gcc is used for the final step. > > I would like to create a tool that creates native executables > without requiring gcc/clang. Is that currently supported with llvm? > > > To create executables, LLVM relies on the system linker (gcc, visual > c, etc.). Even Clang uses the system linker for the final link step. > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> > http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > > -- > > Thanks, > > Justin Holewinski > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110514/c2b58110/attachment.html>
It looks like someone got started on this project: http://www.llvm.org/devmtg/2010-11/Spencer-ObjectFiles.pdf Does anyone know what kind of progress has been made? On Sat, May 14, 2011 at 9:10 AM, Reed Kotler <rkotler at mips.com> wrote:> It's not so easy to create a linker that has all the bells and whistles, > especially on windows. > You have to look at the totality of options, linker files, shared objects, > etc. > It's not a weekend project. > > If you want to read the elf manual and gnu ld and then write a new one you > could do that. Clang can easily be fixed to incorporate it either as a > default or as an optional linker. The GNU ld for mingw must know a lot about > windows linking but probably not all. > > In some worlds Coff format is still relevant. > > Microsoft has their own form of Coff that they use even today. > > Back in the early days of Windows NT I wrote one for that OS because > Microsoft stopped distributing one with the OS and spent a lot of time > reverse engineering Microsofts until I could really do all that it could do. > Traditionally the OS manufacturer wrote the linker and did not document > things well enough for someone else to. > > Clang is not just for linux; people are going to build embedded bare metal > apps and the OS itself (linux for example) and need many obscure features. > > I think writing a new elf linker for linux and bare metal is possible but I > would forget about supporting COFF and Microsoft format and other OS's like > BSD or at least leave that open for someone else to add that can really add > all the bells and whistles for that OS. > > reed > > > On 05/14/2011 07:35 AM, Justin Holewinski wrote: > > On Fri, May 13, 2011 at 2:20 PM, Hans Stimer <hans.stimer at gmail.com>wrote: > >> It appears that when you link bitcode files into a native executable using >> llvm-ld, that gcc is used for the final step. >> >> I would like to create a tool that creates native executables without >> requiring gcc/clang. Is that currently supported with llvm? >> > > To create executables, LLVM relies on the system linker (gcc, visual c, > etc.). Even Clang uses the system linker for the final link step. > > >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> > > > -- > > Thanks, > > Justin Holewinski > > > _______________________________________________ > LLVM Developers mailing listLLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110514/0a807106/attachment.html>
It looks like it is kind of stalled: ~/extern/llvm.head/lib/Object $ svn log On Sat, May 14, 2011 at 11:07 AM, Hans Stimer <hans.stimer at gmail.com> wrote:> It looks like someone got started on this project: > > http://www.llvm.org/devmtg/2010-11/Spencer-ObjectFiles.pdf > > Does anyone know what kind of progress has been made? > > > On Sat, May 14, 2011 at 9:10 AM, Reed Kotler <rkotler at mips.com> wrote: > >> It's not so easy to create a linker that has all the bells and whistles, >> especially on windows. >> You have to look at the totality of options, linker files, shared objects, >> etc. >> It's not a weekend project. >> >> If you want to read the elf manual and gnu ld and then write a new one you >> could do that. Clang can easily be fixed to incorporate it either as a >> default or as an optional linker. The GNU ld for mingw must know a lot about >> windows linking but probably not all. >> >> In some worlds Coff format is still relevant. >> >> Microsoft has their own form of Coff that they use even today. >> >> Back in the early days of Windows NT I wrote one for that OS because >> Microsoft stopped distributing one with the OS and spent a lot of time >> reverse engineering Microsofts until I could really do all that it could do. >> Traditionally the OS manufacturer wrote the linker and did not document >> things well enough for someone else to. >> >> Clang is not just for linux; people are going to build embedded bare metal >> apps and the OS itself (linux for example) and need many obscure features. >> >> I think writing a new elf linker for linux and bare metal is possible but >> I would forget about supporting COFF and Microsoft format and other OS's >> like BSD or at least leave that open for someone else to add that can really >> add all the bells and whistles for that OS. >> >> reed >> >> >> On 05/14/2011 07:35 AM, Justin Holewinski wrote: >> >> On Fri, May 13, 2011 at 2:20 PM, Hans Stimer <hans.stimer at gmail.com>wrote: >> >>> It appears that when you link bitcode files into a native executable >>> using llvm-ld, that gcc is used for the final step. >>> >>> I would like to create a tool that creates native executables without >>> requiring gcc/clang. Is that currently supported with llvm? >>> >> >> To create executables, LLVM relies on the system linker (gcc, visual c, >> etc.). Even Clang uses the system linker for the final link step. >> >> >>> >>> _______________________________________________ >>> LLVM Developers mailing list >>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >>> >>> >> >> >> -- >> >> Thanks, >> >> Justin Holewinski >> >> >> _______________________________________________ >> LLVM Developers mailing listLLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110514/e9ffc617/attachment.html>