Hi Rafael, I've tried the LTO options with dragonegg, but I haven't had any luck getting it to work, I'm not sure if it is related to my installation of gold or my gcc configuration. I'm really interested in getting the resulting program as bitcode though. Will LTO do that for me? What I'm trying to do is build a bitcode version of libc that I can combine with a program and analyze/optimize the resulting program. 2011/6/28 Rafael Ávila de Espíndola <rafael.espindola at gmail.com>> On 11-06-28 10:45 PM, Gregory Malecha wrote: > > Hello, > > > > I've been trying to build some normal linux applications with clang and I > keep running into a snag in configure scripts. Perhaps these scripts are not > written very well, but the current clang behavior seems strange. When I run > clang with the -emit-llvm option, it still uses /usr/bin/ld as the linker > which fails to compile llvm bitcode on linux (though it works on mac). > Here's a simple example: > > > > $ cat > test.c > > int main(void) { return 0; } > > $ clang -emit-llvm test.c > > /tmp/cc-pDfs56.o: file not recognized: File format not recognized > > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > > $ clang -emit-llvm test.c -c > > $ > > > > It seems to me that clang should call llvm-ld when it generates llvm code > and ld otherwise, but maybe there's something that I have configured > incorrectly. What is the appropriate way to address this? > > llvm-ld is not a full replacement for a system ld. If you want to do LTO > (which is why I assume you > are using -emit-llvm), you should use a linker that support it. Gold > support plugins and can > use the LLVM one. Recently gnu ld implemented the same interface, but I > haven't tested it. > > http://llvm.org/docs/GoldPlugin.html > > > Thanks. > > Cheers, > Rafael > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-- gregory malecha -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110629/44db9eb7/attachment.html>
Hi Gregory,> I've tried the LTO options with dragonegg, but I haven't had any luck getting it > to work,details? Ciao, Duncan. I'm not sure if it is related to my installation of gold or my gcc> configuration. > > I'm really interested in getting the resulting program as bitcode though. Will > LTO do that for me? What I'm trying to do is build a bitcode version of libc > that I can combine with a program and analyze/optimize the resulting program. > > > > 2011/6/28 Rafael Ávila de Espíndola <rafael.espindola at gmail.com > <mailto:rafael.espindola at gmail.com>> > > On 11-06-28 10:45 PM, Gregory Malecha wrote: > > Hello, > > > > I've been trying to build some normal linux applications with clang and I > keep running into a snag in configure scripts. Perhaps these scripts are not > written very well, but the current clang behavior seems strange. When I run > clang with the -emit-llvm option, it still uses /usr/bin/ld as the linker > which fails to compile llvm bitcode on linux (though it works on mac). > Here's a simple example: > > > > $ cat > test.c > > int main(void) { return 0; } > > $ clang -emit-llvm test.c > > /tmp/cc-pDfs56.o: file not recognized: File format not recognized > > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > > $ clang -emit-llvm test.c -c > > $ > > > > It seems to me that clang should call llvm-ld when it generates llvm code > and ld otherwise, but maybe there's something that I have configured > incorrectly. What is the appropriate way to address this? > > llvm-ld is not a full replacement for a system ld. If you want to do LTO > (which is why I assume you > are using -emit-llvm), you should use a linker that support it. Gold support > plugins and can > use the LLVM one. Recently gnu ld implemented the same interface, but I > haven't tested it. > > http://llvm.org/docs/GoldPlugin.html > > > Thanks. > > Cheers, > Rafael > _______________________________________________ > 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 > > > > > -- > gregory malecha > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Hi Duncan, On Wed, Jun 29, 2011 at 11:32 PM, Duncan Sands <baldrick at free.fr> wrote:> Hi Gregory, > > > I've tried the LTO options with dragonegg, but I haven't had any luck > getting it > > to work, > > details? >I think this is a misunderstanding on my part about what the dragonegg plugin is supposed to do. I am looking for something that will essentially be a replacement for gcc except that it generates llvm bitcode instead of normal object files. If I run something like: gcc-4.5 -fplugin=/homes/malecha/tmp/libc-scratch/dragonegg/dragonegg.so a.c -c -o a.o -flto /tmp/ccRKW0GD.s: Assembler messages: /tmp/ccRKW0GD.s:1: Error: junk at end of line, first unrecognized character is `.' /tmp/ccRKW0GD.s:2: Error: no such instruction: `target triple="x86_64--linux-gnu"' /tmp/ccRKW0GD.s:4: Error: no such instruction: `module asm "\09.ident\09\22GCC: (GNU) 4.5.2 LLVM: 133848\22"' ... I assume because my system assembler doesn't understand llvm bitcode. So I ended up wrapping it up in a script that calls gcc with -emit-llvm -S and then runs llvm-as on the resulting llvm assembly code. I think that I just need to manually (i.e. with a script) expand the gcc calls to incorporate the llvm toolchain.> Ciao, Duncan. > > I'm not sure if it is related to my installation of gold or my gcc > > configuration. > > > > I'm really interested in getting the resulting program as bitcode though. > Will > > LTO do that for me? What I'm trying to do is build a bitcode version of > libc > > that I can combine with a program and analyze/optimize the resulting > program. > > > > > > > > 2011/6/28 Rafael Ávila de Espíndola <rafael.espindola at gmail.com > > <mailto:rafael.espindola at gmail.com>> > > > > On 11-06-28 10:45 PM, Gregory Malecha wrote: > > > Hello, > > > > > > I've been trying to build some normal linux applications with > clang and I > > keep running into a snag in configure scripts. Perhaps these scripts > are not > > written very well, but the current clang behavior seems strange. When > I run > > clang with the -emit-llvm option, it still uses /usr/bin/ld as the > linker > > which fails to compile llvm bitcode on linux (though it works on > mac). > > Here's a simple example: > > > > > > $ cat > test.c > > > int main(void) { return 0; } > > > $ clang -emit-llvm test.c > > > /tmp/cc-pDfs56.o: file not recognized: File format not recognized > > > clang: error: linker command failed with exit code 1 (use -v to > see > > invocation) > > > $ clang -emit-llvm test.c -c > > > $ > > > > > > It seems to me that clang should call llvm-ld when it generates > llvm code > > and ld otherwise, but maybe there's something that I have configured > > incorrectly. What is the appropriate way to address this? > > > > llvm-ld is not a full replacement for a system ld. If you want to do > LTO > > (which is why I assume you > > are using -emit-llvm), you should use a linker that support it. Gold > support > > plugins and can > > use the LLVM one. Recently gnu ld implemented the same interface, but > I > > haven't tested it. > > > > http://llvm.org/docs/GoldPlugin.html > > > > > Thanks. > > > > Cheers, > > Rafael > > _______________________________________________ > > 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 > > > > > > > > > > -- > > gregory malecha > > > > > > > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://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 >-- gregory malecha -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110630/d3ac2a78/attachment.html>