[llvm-dev] LTO in LLVM3.8
Below, Daniel via llvm-dev
llvm-dev at lists.llvm.org
Mon Apr 4 18:28:39 PDT 2016
I've been playing around with LLVM and LTO trying to compile some open-source projects.
Prior to the 3.8 release I had been using r250630 (if I remember correctly) and I was able to successfully build GamePlay (https://github.com/gameplay3d/GamePlay).
Sadly, since upgrading to 3.8 I am getting weird link-time-errors (error: undefined reference to 'XYZ::~XYZ').
It appears that these destructors are all virtual (although I cannot guarantee this does not break for non-virtual destructors too). The project generates an archive file which is then linked against to generate a few sample applications. During this linking phase, the above error (undefined reference to 'XYZ::~XYZ') appears.
I have upgraded the gold-linker, and I have tried using the current trunk of LLVM - both did not help. After three days of trying to debug this, I have run out of ideas.
Is this a known bug? I have found an issue on the gnu/binutils bugtracker that sounds similar (https://lists.gnu.org/archive/html/bug-binutils/2016-03/msg00235.html - bugged symbol resolution of weak symbols), although in my case compilation is aborted because of said errors.
Have there been any undocumented changes to LTO in 3.8 I should be aware of? Is there maybe a specific gold-linker version I have to use or should I use llvm-ar/nm now, instead of the ar/nm provided by binutils (which have worked for me before 3.8)?
Any help is greatly appreciated,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev