--- command lines ---
$ llvm-gcc -flto a.c -c -o a.o # <-- a.o is LLVM bitcode file
+$ ar q a.a a.o # <-- a.a is an archive with LLVM bitcode
$ llvm-gcc b.c -c -o b.o # <-- b.o is native object file
-$ llvm-gcc -use-gold-plugin a.o b.o -o main # <-- link with LLVMgold plugin
+$ llvm-gcc -use-gold-plugin a.a b.o -o main # <-- link with LLVMgold plugin
</pre>
<p>Gold informs the plugin that foo3 is never referenced outside the IR,
leading LLVM to delete that function. However, unlike in the
<pre class="doc_code">
export CC="$PREFIX/bin/llvm-gcc -use-gold-plugin"
export CXX="$PREFIX/bin/llvm-g++ -use-gold-plugin"
-export AR="$PREFIX/bin/ar --plugin libLLVMgold.so"
-export NM="$PREFIX/bin/nm --plugin libLLVMgold.so"
+export AR="$PREFIX/bin/ar"
+export NM="$PREFIX/bin/nm"
export RANLIB=/bin/true #ranlib is not needed, and doesn't support .bc files in .a
export CFLAGS="-O4"
- </pre>
+</pre>
+ </li>
+ <li>Or you can just set your path:
+ <pre class="doc_code">
+export PATH="$PREFIX/bin:$PATH"
+export CC="llvm-gcc -use-gold-plugin"
+export CXX="llvm-g++ -use-gold-plugin"
+export RANLIB=/bin/true
+export CFLAGS="-O4"
+</pre>
</li>
<li>Configure & build the project as usual: <tt>./configure && make && make check</tt> </li>
</ul>