Created attachment 185730 [details] disable lld for devel/libcfg In general ${LDFLAGS} contains flags for the compiler driver and should be passed to the compiler driver, not directly to the linker. libcfg tries to use it both ways, which is invalid -- in Rules.mk.in $(LIBDYNAMICV): $(OBJECTS) $(LD) $(LDFLAGS) -shared -o $@ $(OBJECTS) .. CCLD = $(CC) LINK = $(CCLD) $(CFLAGS) $(LDFLAGS) -o $@ Found while trying to link with lld as /usr/bin/ld, because lld interpreted -fstack-protector as an invalid argument: ===> Building for libcfg-0.6.2_3 ... ar: warning: creating libcfg+.a ld: error: unknown argument: -fstack-protector ... Even though this appears to work with GNU ld (ld.bfd) it produces a shared object with a bogus entry: nuc% readelf -d work/stage/usr/local/lib/libcfg+.so Dynamic section at offset 0x92c8 contains 15 entries: Tag Type Name/Value 0x000000007ffffffd AUXILIARY Auxiliary library: [stack-protector] ... nuc%
Committed, thanks.
A commit references this bug: Author: rodrigo Date: Mon Dec 4 17:43:55 UTC 2017 New revision: 455529 URL: https://svnweb.freebsd.org/changeset/ports/455529 Log: devel/libcfg: set LLD_UNSAFE This port passes ${LDFLAGS} to both the compiler driver and directly to the linker, which is not valid. Revert to using ld.bfd for now which produces output with a bogus entry, but does not fail to link. Bump portrevision. PR: 221778 Submitted by: emaste@ Approved by: rodrigo@ (maintainer) Changes: head/devel/libcfg/Makefile