[llvm-dev] JIT and atexit crash

Alex Denisov via llvm-dev llvm-dev at lists.llvm.org
Tue Nov 21 02:13:05 PST 2017

> It's not the job of the Orc engine.

I could argue about this, but I won’t :)

> Just don't use atexit.

The problem is that I run third-party programs. I cannot control them.

> On 20. Nov 2017, at 01:04, Joerg Sonnenberger via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> On Mon, Nov 20, 2017 at 12:22:49AM +0100, Alex Denisov via llvm-dev wrote:
>> JIT allocates and maps some memory for the execution. Some function X at address 0xdeadbeef is part of this memory.
>> JIT calls a code that passes the X to atexit.
>> JIT deallocates and unmaps the memory used for execution (either via objectLayer.removeObjectSet or by calling JIT's destructors)
>> atexit (cxa_finalize_ranges) calls the X at 0xdeadbeef which does not belong to 'us' anymore, which leads to the crash.
> Sounds plausible.
>> Given that my assumption is correct what can we do about this? Is there
>> anything that can be done to cover this case inside of the Orc engine?
> It's not the job of the Orc engine. Just don't use atexit.
> Joerg
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 529 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171121/b7fef120/attachment.sig>

More information about the llvm-dev mailing list