Date: Sun, 16 Apr 2017 01:10:26 -0700 From: Mark Millard <markmi@dsl-only.net> To: FreeBSD Toolchain <freebsd-toolchain@freebsd.org> Cc: FreeBSD Current <freebsd-current@freebsd.org>, FreeBSD Ports <freebsd-ports@freebsd.org> Subject: FYI: amd64 built with WITH_LLD_IS_LD= vs. devel/libunwind : cannot preempt symbol (for various symbols) Message-ID: <37CB2849-A509-4C1D-AB93-A1FBFF70E959@dsl-only.net>
next in thread | raw e-mail | index | archive | help
Context: amd64 FreeBSD -r316952 as a VirtualBox guest that was built using WITH_LLD_IS_LD=3D . ports -r438577. x11/xorg-minimal indirectly gets to devel/libunwind and devel/libunwind fails to build from source: --- 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 /usr/bin/ld: error: ./Gperf-simple.c:219: cannot preempt symbol = '_ULx86_64_init_local' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-simple.c:252: cannot preempt symbol = '_ULx86_64_local_addr_space' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-simple.c:252: cannot preempt symbol = '_ULx86_64_set_caching_policy' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-simple.c:255: cannot preempt symbol = '_ULx86_64_local_addr_space' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-simple.c:255: cannot preempt symbol = '_ULx86_64_set_caching_policy' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-simple.c:258: cannot preempt symbol = '_ULx86_64_local_addr_space' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-simple.c:258: cannot preempt symbol = '_ULx86_64_set_caching_policy' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-simple.c:66: cannot preempt symbol = '_ULx86_64_init_local' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-simple.c:73: cannot preempt symbol = '_ULx86_64_step' defined in ../src/.libs/libunwind.so cc: error: linker command failed with exit code 1 (use -v to see = invocation) *** [Lperf-simple] Error code 1 make[2]: stopped in = /usr/obj/portswork/usr/ports/devel/libunwind/work/libunwind-1.1/tests --- Lperf-trace --- libtool: link: cc -O2 -pipe -g -fstack-protector -fno-strict-aliasing = -fexceptions -Wall -Wsign-compare -fstack-protector -o .libs/Lperf-trace = Lperf-trace.o ../src/.libs/libunwind.so -lgcc -llzma -Wl,-rpath = -Wl,/usr/local/lib --- Gperf-simple --- libtool: link: cc -O2 -pipe -g -fstack-protector -fno-strict-aliasing = -fexceptions -Wall -Wsign-compare -fstack-protector -o = .libs/Gperf-simple Gperf-simple.o ../src/.libs/libunwind-x86_64.so = /usr/obj/portswork/usr/ports/devel/libunwind/work/libunwind-1.1/src/.libs/= libunwind.so ../src/.libs/libunwind.so -lgcc -llzma -Wl,-rpath = -Wl,/usr/local/lib --- Lperf-trace --- /usr/bin/ld: error: ./Gperf-trace.c:181: cannot preempt symbol = '_ULx86_64_init_local' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-trace.c:205: cannot preempt symbol = '_ULx86_64_init_local' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-trace.c:238: cannot preempt symbol = '_ULx86_64_local_addr_space' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-trace.c:238: cannot preempt symbol = '_ULx86_64_set_caching_policy' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-trace.c:241: cannot preempt symbol = '_ULx86_64_local_addr_space' defined in ../src/.libs/libunwind.so --- Gperf-trace --- libtool: link: cc -O2 -pipe -g -fstack-protector -fno-strict-aliasing = -fexceptions -Wall -Wsign-compare -fstack-protector -o .libs/Gperf-trace = Gperf-trace.o ../src/.libs/libunwind-x86_64.so = /usr/obj/portswork/usr/ports/devel/libunwind/work/libunwind-1.1/src/.libs/= libunwind.so ../src/.libs/libunwind.so -lgcc -llzma -Wl,-rpath = -Wl,/usr/local/lib --- Lperf-trace --- /usr/bin/ld: error: ./Gperf-trace.c:241: cannot preempt symbol = '_ULx86_64_set_caching_policy' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-trace.c:244: cannot preempt symbol = '_ULx86_64_local_addr_space' defined in ../src/.libs/libunwind.so /usr/bin/ld: error: ./Gperf-trace.c:244: cannot preempt symbol = '_ULx86_64_set_caching_policy' defined in ../src/.libs/libunwind.so cc: error: linker command failed with exit code 1 (use -v to see = invocation) *** [Lperf-trace] Error code 1 make[2]: stopped in = /usr/obj/portswork/usr/ports/devel/libunwind/work/libunwind-1.1/tests --- Gperf-simple --- /usr/bin/ld: error: Gperf-simple.c:195: cannot preempt symbol = '_Ux86_64_init_local' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-simple.c:219: cannot preempt symbol = '_Ux86_64_init_local' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-simple.c:252: cannot preempt symbol = '_Ux86_64_local_addr_space' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-simple.c:252: cannot preempt symbol = '_Ux86_64_set_caching_policy' defined in = ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-simple.c:255: cannot preempt symbol = '_Ux86_64_local_addr_space' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-simple.c:255: cannot preempt symbol = '_Ux86_64_set_caching_policy' defined in = ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-simple.c:258: cannot preempt symbol = '_Ux86_64_local_addr_space' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-simple.c:258: cannot preempt symbol = '_Ux86_64_set_caching_policy' defined in = ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-simple.c:66: cannot preempt symbol = '_Ux86_64_init_local' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-simple.c:73: cannot preempt symbol = '_Ux86_64_step' defined in ../src/.libs/libunwind-x86_64.so --- Gperf-trace --- /usr/bin/ld: error: Gperf-trace.c:181: cannot preempt symbol = '_Ux86_64_init_local' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-trace.c:205: cannot preempt symbol = '_Ux86_64_init_local' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-trace.c:238: cannot preempt symbol = '_Ux86_64_local_addr_space' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-trace.c:238: cannot preempt symbol = '_Ux86_64_set_caching_policy' defined in = ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-trace.c:241: cannot preempt symbol = '_Ux86_64_local_addr_space' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-trace.c:241: cannot preempt symbol = '_Ux86_64_set_caching_policy' defined in = ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-trace.c:244: cannot preempt symbol = '_Ux86_64_local_addr_space' defined in ../src/.libs/libunwind-x86_64.so /usr/bin/ld: error: Gperf-trace.c:244: cannot preempt symbol = '_Ux86_64_set_caching_policy' defined in = ../src/.libs/libunwind-x86_64.so --- Gperf-simple --- cc: error: linker command failed with exit code 1 (use -v to see = invocation) --- Gperf-trace --- cc: error: linker command failed with exit code 1 (use -v to see = invocation) --- Gperf-simple --- *** [Gperf-simple] Error code 1 make[2]: stopped in = /usr/obj/portswork/usr/ports/devel/libunwind/work/libunwind-1.1/tests --- Gperf-trace --- *** [Gperf-trace] Error code 1 I do have: # svnlite diff /usr/ports/Mk Index: /usr/ports/Mk/bsd.port.mk =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /usr/ports/Mk/bsd.port.mk (revision 436747) +++ /usr/ports/Mk/bsd.port.mk (working copy) @@ -1646,7 +1646,11 @@ STRIP_CMD=3D ${TRUE} .endif DEBUG_FLAGS?=3D -g +.if defined(ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG) +CFLAGS:=3D ${CFLAGS} ${DEBUG_FLAGS} +.else CFLAGS:=3D ${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS} +.endif .if defined(INSTALL_TARGET) INSTALL_TARGET:=3D ${INSTALL_TARGET:S/^install-strip$/install/g} .endif and use ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG=3D and WITH_DEBUG=3D : # more /etc/make.conf=20 WANT_QT_VERBOSE_CONFIGURE=3D1 # DEFAULT_VERSIONS+=3Dperl5=3D5.24 WRKDIRPREFIX=3D/usr/obj/portswork # # =46rom a local /usr/ports/Mk/bsd.port.mk extension: ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG=3D # .if ${.CURDIR:M*/devel/*llvm*} #WITH_DEBUG=3D .elif ${.CURDIR:M*/www/webkit-qt5*} #WITH_DEBUG=3D .else WITH_DEBUG=3D .endif WITH_DEBUG_FILES=3D MALLOC_PRODUCTION=3D =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?37CB2849-A509-4C1D-AB93-A1FBFF70E959>