Bug 221802 - www/dummyflash: port passes $LDFLAGS to direct linker invocation, not compiler driver
Summary: www/dummyflash: port passes $LDFLAGS to direct linker invocation, not compile...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Tobias Kortkamp
URL:
Keywords:
Depends on:
Blocks: 214864
  Show dependency treegraph
 
Reported: 2017-08-25 13:00 UTC by Ed Maste
Modified: 2018-03-11 13:03 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (darius)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Maste freebsd_committer freebsd_triage 2017-08-25 13:00:02 UTC
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/dummyflash build log excerpt:
===>  Building for dummyflash-1.0_5
cc -c -g -fPIC -DXP_UNIX -I../../../include -I../Source/_gen -I/usr/local/include -I. -I/usr/include ../Source/UnixShell.c
cc -c -g -fPIC -DXP_UNIX -I../../../include -I../Source/_gen -I/usr/local/include -I. -I/usr/include ../Source/stubs.c
ld -shared -o dummyflash.so UnixShell.o stubs.o  -fstack-protector
ld: error: unknown argument: -fstack-protector
Comment 1 Daniel O'Connor 2017-08-25 14:15:36 UTC
I no longer use this port so can't maintain it, and to be honest I expect it's been superseded by better ways to do the same task so I suggest deleting the port.
Comment 2 commit-hook freebsd_committer freebsd_triage 2018-03-11 13:01:57 UTC
A commit references this bug:

Author: tobik
Date: Sun Mar 11 13:01:48 UTC 2018
New revision: 464168
URL: https://svnweb.freebsd.org/changeset/ports/464168

Log:
  www/dummyflash: Mark deprecated

  PR:		221802
  Submitted by:	darius@dons.net.au (maintainer)

Changes:
  head/www/dummyflash/Makefile
Comment 3 Tobias Kortkamp freebsd_committer freebsd_triage 2018-03-11 13:03:06 UTC
Fixed by deprecation.