[LLVMdev] clang 3.5 with "-flto" does not generate .bc files
John Criswell
criswell at illinois.edu
Tue Jun 24 20:30:18 PDT 2014
On 6/24/14, 10:11 PM, Gaoyao Xiao wrote:
> Hello,
>
> I am trying to use clang to generate bitcode file. I read in
> http://llvm.org/docs/GoldPlugin.html that clang with -flto option can
> generate bitcode files. I have built LLVMgold.so and have gold with
> plugin support. I tried "clang -c -flto toy.c -o toy.bc" and it does
> produce bitcode. However, when I try it on lighttpd 1.4.35, then it
> only produce the binary, but not produce bitcode of lighttpd. I also
> tried it on apache2.0.56, and it create the errors like the following
> when linking.
In the case of lighttpd, I suspect that the configure script is not
picking up the -flto option. Examine the output of the build (or look
at the Makefiles) to see if it is indeed compiling with the -flto option
as expected. If not, you either need to play around with the configure
script (e.g., set CC to "clang -flto") or modify the Makefiles.
>
> /usr/bin/ld.gold.real: error: strings/.libs/apr_cpystrn.o:1:3: invalid
> character
> /usr/bin/ld.gold.real: error: strings/.libs/apr_cpystrn.o:1:3: syntax
> error, unexpected $end
> /usr/bin/ld.gold.real: error: strings/.libs/apr_cpystrn.o: not an
> object or archive
This error is most likely caused by a program that is expecting a
regular object file but is reading a bitcode file instead. You should
determine what command the make program is running that is generating
this error. Once you know that, you can determine how to fix the error
(by modifying the Makefiles or adjusting the variable you set before
running configure).
Also be aware that ar, nm, etc. need to find the libLTO.so file in a
particular place in order to read bitcode files. Be sure that is
installed properly. The SAFECode libLTO directions may provide some
illumination: http://sva.cs.illinois.edu/docs/Install.html#install.
The Apache build system in particular does some interesting things.
You'll probably need to modify the build system to get it to work.
Regards,
John Criswell
>
> I am using ubuntu 12.04. I have the following questions:
> 1) for lighttpd, why is it able to build but not produce bitcode?
> 2) for apache, does the error means that gold plugin is not found by
> clang and make it fail to link? I read "-use-gold-plugin" can solve
> this problem on clang 3.0. But this option is not recognized by clang
> 3.5. Will clang 3.0 solve this problem?
>
> Many thanks!
> Gaoyao
>
>
> _______________________________________________
> 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/20140624/91860e42/attachment.html>
More information about the llvm-dev
mailing list