Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Apr 2017 21:32:25 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        Ed Maste <emaste@freebsd.org>
Cc:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>, FreeBSD Ports <freebsd-ports@freebsd.org>
Subject:   Re: FYI: amd64 built with WITH_LLD_IS_LD= vs. devel/libunwind : cannot preempt symbol (for various symbols)
Message-ID:  <6C9833F3-8DA6-4D79-A076-F4B78C47CC72@dsl-only.net>
In-Reply-To: <CAPyFy2C3vrDm5L_6k_2bY_12wH5oHN62EuB2HzMKTE7cVzPmKw@mail.gmail.com>
References:  <37CB2849-A509-4C1D-AB93-A1FBFF70E959@dsl-only.net> <CAPyFy2C3vrDm5L_6k_2bY_12wH5oHN62EuB2HzMKTE7cVzPmKw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2017-Apr-16, at 7:01 PM, Ed Maste <emaste@freebsd.org> wrote:

> On 16 April 2017 at 04:10, Mark Millard <markmi@dsl-only.net> wrote:
>> Context: amd64 FreeBSD -r316952 as a VirtualBox guest
>> that was built using WITH_LLD_IS_LD=3D . ports -r438577.
>>=20
>> x11/xorg-minimal indirectly gets to devel/libunwind and
>> devel/libunwind fails to build from source:
>>=20
>>=20
>> --- Lperf-simple ---
>> libtool: link: cc -O2 -pipe -g -fstack-protector -fno-strict-aliasing =
-fexceptions -Wall -Wsign-compare -fstack-protector -o =
.libs/Lperf-simple Lperf-simple.o  ../src/.libs/libunwind.so -lgcc =
-llzma -Wl,-rpath -Wl,/usr/local/lib
>> /usr/bin/ld: error: ./Gperf-simple.c:195: cannot preempt symbol =
'_ULx86_64_init_local' defined in ../src/.libs/libunwind.so
>=20
> The LLD ports exp-run identified the "cannot preempt symbol" issue as
> being responsible for the largest number of failed or skipped ports.
> You can find a description of the issue in LLVM PR 30960
> (https://bugs.llvm.org//show_bug.cgi?id=3D30960). This is a tricky
> issue, and one for which there's not a clear right answer, but is
> arguably a problem that needs to be addressed in the individual pieces
> of software (libunwind, openal-soft, etc.)

Good to know.

> As a temporary workaround you can add CFLAGS+=3D -fPIC to the port's
> Makefile, as in
> =
https://github.com/emaste/freebsd-ports/commit/4857444b31ca546e29e221dce2a=
41092765e6062

I've set this up for the next time I try using
WITH_LLD_IS_LD=3D on amd64.

Thanks.


When I reverted earlier to binutils based ld a later
qt5-widgets vs. libQt5Core.so ended up with: "multiple
definition of" for __bss_start@Qt_5 _edata@Qt_5 _end@Qt_5
and this stoped the build that I was attempting.

(I did not make to to the x11/lumina that I explicitly
specified as to be built.)

So my -fPIC experiment using WITH_LLD_IS_LD=3D on amd64 will
not likely happen until Qt5 can build what is involved in
its supporting x11/lumina .

(Having at least x11/xorg-minimal also helps with using
x11/lumina . But until I can have x11/lumina I've no
intended use for x11/xorg-minimal .)

=3D=3D=3D
Mark Millard
markmi at dsl-only.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6C9833F3-8DA6-4D79-A076-F4B78C47CC72>