Date: Wed, 19 Apr 2017 15:17:13 -0400 From: Ed Maste <emaste@freebsd.org> To: "freebsd-toolchain@freebsd.org" <freebsd-toolchain@freebsd.org> Subject: Re: svn commit: r317159 - head/contrib/libstdc++/config/abi/pre Message-ID: <CAPyFy2DPq4Li3yRjwYbzfAnrvyBVjRSFii33EykPEUgdrG=ipg@mail.gmail.com> In-Reply-To: <201704191906.v3JJ6lcl053049@repo.freebsd.org> References: <201704191906.v3JJ6lcl053049@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 19 April 2017 at 15:06, Ed Maste <emaste@freebsd.org> wrote: > Author: emaste > Date: Wed Apr 19 19:06:47 2017 > New Revision: 317159 > URL: https://svnweb.freebsd.org/changeset/base/317159 > > Log: > libstdc++: fix symbol version script for LLD > > LLD is less tolerant of inconsistencies in the symbol version script. > > - Add a ; on the last entry in a version block > - Remove duplicated symbols, retaining those in the earliest block For reference, with this change and two others I was able to link FreeBSD/mips64 world and kernel using the in-tree LLD 4.0.0, although I haven't yet tested the result. Everything was compiled with the in-tree GCC 4.2.1. The other changes I used: 1) applying -mxgot globally, by adding it to CFLAGS in bsd.cpu.mk 2) disabling static_libpam in lib/libpam/Makefile There is a patch in LLVM's Phabricator to add multi-GOT support to LLD[1], although it's meeting some resistance: LLD's main authors don't want the additional complexity in LLD to support ABI oddities that only apply to MIPS. The static libpam failed because it needs to output a relocatable object (ld -r) from multiple input object objects with different/non-zero ri_gp_value, and LLD is not capable of this. [1] https://reviews.llvm.org/D31528
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPyFy2DPq4Li3yRjwYbzfAnrvyBVjRSFii33EykPEUgdrG=ipg>