[LLVMdev] Type conflicts with linkonce functions

Chris Lattner sabre at nondot.org
Thu Jun 19 22:30:09 PDT 2008

On Jun 12, 2008, at 11:56 PM, Nathan Keynes wrote:

> Hi,
>    Currently if the linker encounters a pair of linkonce function  
> definitions with different types, it raises an error of the form:
> llvm-ld: error: Cannot link file 'item.o.bc': Function  
> '_ZN18st_select_lex_unit12first_selectEv' defined as both '  
> %struct.SELECT_LEX* (%struct.SELECT_LEX_UNIT*)' and '  
> %struct.SELECT_LEX* (%struct.SELECT_LEX_UNIT*)'
>    I encountered the above while building mysql 5.0.51a after  
> dealing with PR1860 - some of the source files appear to have  
> slightly different definitions of the same type name, which makes  
> the error message especially confusing. In any case, this doesn't  
> seem right - I would expect the link to proceed regardless of the  
> type mismatch. The patch below is intended to change the linker  
> behaviour in the presence of a function type mismatch to add a  
> bitcast but otherwise continue linking as normal.

Your patch looks great, applied!

Sorry for the delay,


More information about the llvm-dev mailing list