I've been investigating the state of the ports tree with LLVM's lld installed as /usr/bin/ld (from the exp-run in PR 214864). Normally LDFLAGS contains flags passed to the compiler driver when invoked for linking. One issue that affects a small number of ports is passing $LDFLAGS to direct linker invocation (i.e, $LD), where it contains flags that are appropriate only for the compiler driver, not the linker. In several instances this comes from bsd.ssp.mk, which adds -fstack-protector to LDFLAGS. GNU BFD ld accepts the flag but produces undesired output, while lld produces an error: ld -fstack-protector -shared -o libcfg+.so.0 ../src/cfg+.o ../src/parse.o ../src/props.o ../src/cmdline.o ../src/cfgfile.o ../src/shared.o ../src/platon/str/strplus.o ../src/platon/str/strctype.o ../src/platon/str/strdyn.o ../src/platon/str/dynfgets.o ld: error: unknown argument: -fstack-protector (from devel/libcfg) (GNU ld produces output with a bogus DT_AUXILIARY "stack-protector" entry for this case.) This affects at least the following ports: www/mod_jk devel/libcfg arabic/libitl www/tdom www/dummyflash ftp/rexx-curl www/tdom build excerpt: ld -Bshareable -x -o libtdom0.8.3.so xmlrole.o xmltok.o xmlparse.o xmlsimple.o utf8conv.o dom.o domhtml.o domxpath.o domxslt.o domlock.o tcldom.o nodecmd.o tdominit.o tclexpat.o tdomStubInit.o -L/usr/local/lib -ltclstub86 -fstack-protector -export-dynamic ld: error: unknown argument: -fstack-protector
Maintainer feedback, please!
Sorry, I totally forgot about this - assigning to myself now.
Looking deeper at this, yes, the undesirable -fstack-protector flag is added to LDFLAGS by the bsd.ssp.mk: % make -C /usr/ports/www/tdom -V LDFLAGS -fstack-protector I don't think, it should be the port's job to remove it -- it would seem, bsd.ssp.mk is wrong. Rene?
(In reply to Mikhail T. from comment #3) The port should not remove it, but should also not pass $LDFLAGS directly to the linker; in the normal case it should link by invoking cc $LDFLAGS