[LLVMdev] fPIC in llvm 2.6

Ryan M. Lefever lefever at illinois.edu
Mon Oct 4 00:16:21 PDT 2010


It appears that llvm-ld can handle bitcode files but llvm-gcc complains 
that when I pass bitcode files to it.  I assume that means that llvm-gcc 
does not use llvm-ld by default.  Is there a way to force it to use llvm-ld?

Bill Wendling wrote:
> You do it by using the -flto flag. But you will need a linker that's able to handle the bitcode files. The Apple linker can and so can the "gold" linker.
> 
> -bw
> 
> On Oct 3, 2010, at 7:47 PM, Ryan M. Lefever wrote:
> 
>> The reason I was linking via llvm-ld is because I didn't know how to 
>> pass bitcode files to llvm-gcc.  How can I do that?
>>
>> Anton Korobeynikov wrote:
>>>> Is fPIC broken on x86_64 in LLVM 2.6?
>>> No, it works w/o any problems
>>>
>>>> -------------------
>>>>> llvm-gcc -Iinclude -emit-llvm -fPIC -O3 -c -o file.opt.bc  file.c
>>>>> llvm-ld -native -Xlinker=-shared -Xlinker=-Wl,-soname,libtest.so -o
>>>> file.so file.opt.bc
>>>> -------------------
>>> PIC-ness is a backend option. So, passing -fPIC to llvm-gcc does not
>>> make any sense, it is not saved into the bytecode.
>>> Try passing -relocation-model=pic to llvm-ld, or just compile
>>> everything via llvm-gcc which known how to pass necessary options to
>>> backend :)
>>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 



More information about the llvm-dev mailing list