[LLVMdev] ld with gold-plugin can do this?
Sanjiv.Gupta at microchip.com
Sanjiv.Gupta at microchip.com
Sun Sep 20 23:57:21 PDT 2009
A common followup question is "but how do I link native libraries into
my .bc file". You don't. A .bc file is llvm ir, you can't put a native
binary library into a .bc (barring sticking it in as a string, etc).
The build then looks like:
a) 'llvm-gcc -c -flo -O2' to generate the .bc files.
b) 'llvm-ld' to combine them into a single .bc. No, not a .so nor a .a.
c) 'llc' to turn your combined .bc into a .s
d) 'as' to turn your .s into a .o
e) 'ld' to turn your .o into a .so or final executable. This is the step
where you get to specify all the native libraries to link with.
You can use 'gcc' to merge steps d and e (it just runs as and ld for
you). Or you can use the gold plugin to merge steps b through e, but
with the added benefit that it will optimize slightly better. See the
llvm LTO documentation on why.
[Sanjiv] - This is what PIC16 does. llvm-ld has an option called '-b' that you can
use to specify the output bitcode file name. Unfortunately, llvm-ld always tries to
generate a native executable (or a shell script) as well and currently there is no way to disable that.
Maybe an option like '-no-native' will be come handy.
- Sanjiv
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090920/8d78b068/attachment.html>
More information about the llvm-dev
mailing list