Thats correct. But using llc becomes a problem when I have archives (.a files). I could, in theory, extract its contents to a tempdir and then use llc and link but just wondering if there is a more elegant solution.<div><br>
</div><div>Ashay</div><div><br><br><div class="gmail_quote">On Mon, Sep 12, 2011 at 3:00 PM, Dmitry N. Mikushin <span dir="ltr"><<a href="mailto:maemarcus@gmail.com">maemarcus@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Ashay,<br>
<br>
If I understand correctly, in hw.o you would have llvm bytecode, while<br>
linker expects regular object binary. Probably first you need to emit<br>
asm out of bytecode using llc?<br>
<br>
- D.<br>
<br>
2011/9/12 Ashay Rane <<a href="mailto:ashay.rane@tacc.utexas.edu">ashay.rane@tacc.utexas.edu</a>>:<br>
<div><div></div><div class="h5">> Hello,<br>
> Sorry for the late reply. Using dragonegg worked well, thanks all!<br>
> Just as a note... I had to use llvm-ld during the link step because gfortran<br>
> could not link bitcode. Here's an example of the error shown when using<br>
> gfortran instead of llvm-ld:<br>
> $ ${GCC_4_5_0}/bin/gfortran hw.f -c<br>
> -fplugin=${DRAGONEGG_PLUGIN}/dragonegg.so -o hw.o -flto -emit-llvm -S<br>
> $ ${LLVM_2_9}/bin/opt -mem2reg hw.o -o hw.o<br>
> $ ${GCC_4_5_0}/bin/gfortran<br>
> -fplugin=${DRAGONEGG_PLUGIN}/dragonegg.so ${GCC_4_5_0}/lib64/libgfortran.a<br>
> hw.o -o hw<br>
> hw.o: file not recognized: File format not recognized<br>
> collect2: ld returned 1 exit status<br>
> $ file hw.o<br>
> hw.o: data<br>
> Instead, using llvm-ld:<br>
> $ ${LLVM_2_9}/bin/llvm-ld -native hw.o -o hw<br>
> ${GCC_4_5_0}/lib64/libgfortran.a -lm<br>
> llvm-gcc had the gold plugin. I wonder if there is any equivalent of that<br>
> for dragonegg to be able to compile bitcode and native object code in a<br>
> transparent manner.<br>
> Thanks again!<br>
> Ashay<br>
><br>
> On Wed, Aug 31, 2011 at 4:29 PM, Anton Korobeynikov<br>
> <<a href="mailto:anton@korobeynikov.info">anton@korobeynikov.info</a>> wrote:<br>
>><br>
>> Hello<br>
>><br>
>> > I am not very familiar with Fortran programs. I saw a few programs that<br>
>> > had<br>
>> > a "MAIN" subroutine defined, some others that did not. Am I missing<br>
>> > something while compiling the code? Is there a different way to compile<br>
>> > bitcode (from Fortran programs) to a native binary?<br>
>> For Fortran MAIN is indeed something similar to C main, but not<br>
>> exactly the same.<br>
>> You have to link the runtime library (libgfortran.a) in order to get<br>
>> "proper" main, mak sure all stuff is initialized properly, etc.<br>
>><br>
>> --<br>
>> With best regards, Anton Korobeynikov<br>
>> Faculty of Mathematics and Mechanics, Saint Petersburg State University<br>
><br>
><br>
</div></div><div><div></div><div class="h5">> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
><br>
><br>
</div></div></blockquote></div><br></div>