[llvm-dev] LTO in LLVM3.8

Daniel Below via llvm-dev llvm-dev at lists.llvm.org
Tue Apr 5 10:31:17 PDT 2016


I have tried using llvm-ar/nm/ranlib instead of the ones provided by
binutils, but I'm still getting the same errors.

Thank you for clarifying about the linked bug!

Am 05.04.2016 um 17:21 schrieb Matt Godbolt:
> In the linked bug, the issue is that symbols defined in multiple
> places (LTO and non-LTO) are provided by the linker plugin (which in
> GCC's case marks the symbols as private).  The error appears to be a
> difference in which symbol gold or ld picks as canonical. I don't
> think it's the same as the issue you're seeing (unless you're mixing
> LTO and non-LTO files).
>
> I'd guess likely the 'ar' et al needs to be the llvm-ar. I have no
> experience with LTO in llvm, but with GCC unless one uses the "right"
> ar, then often LTO information is lost in the archive.
>
> On Tue, Apr 5, 2016 at 8:43 AM Daniil Troshkov via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
>     you can also try to find exactly revision number (using binary
>     search through revisions and using comments in suspicious commits)
>     and try to ask author directly... at least it will be additional
>     info...
>
>     On Tue, Apr 5, 2016 at 4:28 AM, Below, Daniel via llvm-dev
>     <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
>         Hi all,
>
>
>         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,
>
>
>         Daniel
>
>
>         _______________________________________________
>         LLVM Developers mailing list
>         llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>         http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>     _______________________________________________
>     LLVM Developers mailing list
>     llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160405/bbeeae20/attachment-0001.html>


More information about the llvm-dev mailing list