[LLVMdev] Type conflicts with linkonce functions
sabre at nondot.org
Thu Jun 19 22:30:09 PDT 2008
On Jun 12, 2008, at 11:56 PM, Nathan Keynes wrote:
> 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