Is this something that you need the linker to treat as "used", or just 
something you don't want the compiler to drop?  If the latter, 
@llvm.compiler.used seems more appropriate.

> On 2016-May-13, at 14:01, Steven Wu <steve...@apple.com> wrote:
> 
> Attach a patch using private linkage type and adding to llvm.used. I have to 
> recreate llvm.used when embedding bitcode. I don't really like it but I don't 
> have better solutions.
> Few other options:
> 1. Not allowing re-embedded bitcode will simplify the code a bit but not a 
> lot.
> 2. Create a new "llvm.*.used" variable in llvm.metadata section.
> 3. Teach optimizer do not optimize away llvm.* variables.   
> 
> <0001-Fix-embed-bitcode-linkage-type.patch>
> 
> Steven
> 
>> On May 13, 2016, at 10:10 AM, Rafael Espíndola <rafael.espind...@gmail.com> 
>> wrote:
>> 
>> On 13 May 2016 at 13:02, Steven Wu <steve...@apple.com> wrote:
>>> Hi Rafael
>>> 
>>> Thanks for notice this! That would definitely cause duplicated symbol error 
>>> and I should definitely change that.
>>> Here is some background:
>>> ld64 in Xcode 7+ knows how to handle the embedded bitcode correctly but not 
>>> the ones in earlier Xcode. The old ld64 will simply concatenate the bitcode 
>>> files which is not the right thing to do. So there is a symbol generated at 
>>> the place to prevent user to link the bitcode object file with old ld64 
>>> because older ld64 will fail and report duplicated symbols.
>>> I have a radar tracking to change the linkage type when upstream but I 
>>> dropped the ball on that one. The correct thing to do is to make it 
>>> internal and add to llvm.used. I will come up with a patch.
>> 
>> Thank you so much!
>> 
>> Cheers,
>> Rafael
> 

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to