LLVM 3.2: conflict with Ubuntu 12.04's version 3.0 of LLVM

Alan,

Hi,

I am working on a Qt project which relies on various plugins, one of which being an LLVM plugin which I build from the LLVM 3.2 source code. Everything works fine on Windows and OS X, but not on Ubuntu 12.04.

Did you use configure/Make or CMake to build llvm-3.2?

Basically, my application runs fine, but when I close it I get a "Segmentation fault (core dumped)". Debugging my application, I found out that, upon shutting down, my application tries to call Ubuntu's version of LLVM (see below for the debug trace). To convince myself that it was really the case, I sudo renamed Ubuntu's LLVM library and rerun my application. As expected, everything worked fine (i.e. no segmentation fault).

You can use "ldd" command to see what shared libraries are linked into
your application, please post what you find out.

Now, it's clearly not an issue with LLVM itself, but a google search didn't yield anything useful, so I was hoping that someone else might have come across this issue before and, more importantly, would have found a solution for it...

Cheers, Alan.

---------------------------------------
0 __GI_raise raise.c 64 0x7ffff5d92425
1 __GI_abort abort.c 91 0x7ffff5d95b8b
2 __libc_message libc_fatal.c 201 0x7ffff5dd039e
3 malloc_printerr malloc.c 5007 0x7ffff5ddab96
4 llvm::PassNameParser::~PassNameParser() /usr/lib/x86_64-linux-gnu/libLLVM-3.0.so.1 0x7fffc01b16c2
5 llvm::cl::list<llvm::PassInfo const*, bool, llvm::PassNameParser>::~list() /home/me/myApp/build/plugins/myApp/libLLVM.so 0x7fffc7b25568
6 __run_exit_handlers exit.c 78 0x7ffff5d97901
7 __GI_exit exit.c 100 0x7ffff5d97985
8 __libc_start_main libc-start.c 258 0x7ffff5d7d774
9 _start 0x426b29
---------------------------------------

Paweł

Hi Paweł,

Alan,

I am working on a Qt project which relies on various plugins, one of which being an LLVM plugin which I build from the LLVM 3.2 source code. Everything works fine on Windows and OS X, but not on Ubuntu 12.04.

Did you use configure/Make or CMake to build llvm-3.2?

I used CMake, but my own CMakeLists.txt file since I don't simply want a shared library, but a plugin (in the Qt sense). Also, I want things to work on Windows while LLVM (still) doesn't handle DLL imports/exports (so, yes, I use __declspec(dllexport) / __declspec(dllimport) on all the classes that I need for my project, and yes, it's a pain every time a new version of LLVM comes out… :)).

Basically, my application runs fine, but when I close it I get a "Segmentation fault (core dumped)". Debugging my application, I found out that, upon shutting down, my application tries to call Ubuntu's version of LLVM (see below for the debug trace). To convince myself that it was really the case, I sudo renamed Ubuntu's LLVM library and rerun my application. As expected, everything worked fine (i.e. no segmentation fault).

You can use "ldd" command to see what shared libraries are linked into
your application, please post what you find out.

I have checked all my libraries with ldd and only my LLVM plugin needs LLVM-related things, hence I am really puzzled indeed.

Alan