[llvm-dev] undefined symbol EnableABIBreakingChecks

Frank Winter via llvm-dev llvm-dev at lists.llvm.org
Fri Mar 22 12:15:15 PDT 2019


Thanks, Tim!

The path for the dynamic loader was set to the "Release" build.

Best,

Frank


On 3/22/19 1:50 PM, Tim Northover wrote:
> Hi Frank,
>
> On Fri, 22 Mar 2019 at 17:03, Frank Winter via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> What am I missing here?
> LLVM has some more expensive checking that breaks ABI compatibility
> (e.g. by adding extra verification fields to structs). In a
> strraightforward world if you linked together .o files compiled with
> and without those checks you'd break horribly at runtime.
>
> So LLVM has two symbols, "EnableABIBreakingChecks" and
> "DisableABIBreakingChecks" and exactly one of them gets referenced
> from every header that would change. This error indicates that some of
> your files were compiled with LLVM_ABI_BREAKING_CHECKS and some
> without.
>
> The fact that it appears to be a runtime issue (i.e. when you execute
> ./main) suggests to me that you've got a dynamically linked LLVM and
> it's picking up the wrong .so files. But a botched build is also
> possible.
>
> Cheers.
>
> Tim.


More information about the llvm-dev mailing list