Bug 226992 - www/cgihtml: fails to link with lld as the system linker
Summary: www/cgihtml: fails to link with lld as the system linker
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: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks: 214864
  Show dependency treegraph
 
Reported: 2018-03-27 16:11 UTC by Ed Maste
Modified: 2018-03-27 20:47 UTC (History)
0 users

See Also:


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 2018-03-27 16:11:56 UTC
I'm working on switching to LLVM's lld linker as the FreeBSD system linker (/usr/bin/ld)[1], and the port in this PR is reported as a new failure in the exp-run, PR 214864.

An excerpt from the build log[2]:
---
cc -O2 -pipe  -fstack-protector -fno-strict-aliasing -c string-lib.c -o string-lib.o
ld: error: -O: number expected, but got 'string-lib.o'
*** Error code 1
---

FreeBSD 11 and later have lld available as /usr/bin/ld.lld, so one simple option for testing is to just symlink /usr/bin/ld to ld.lld (and restore it to ld.bfd).

A port Makefile knob, LLD_UNSAFE=yes, exists to indicate that a port does not work with lld, and requires either /usr/bin/ld.bfd or binutils from ports. This should work for the common case of ports written in C using GNU autoconf; it may have no effect on other ports.

[1] https://lists.freebsd.org/pipermail/freebsd-current/2018-March/068985.html
[2] http://package18.nyi.freebsd.org/data/headamd64PR214864-default/2018-03-21_17h43m11s/logs/errors/cgihtml-1.69_3.log
Comment 1 commit-hook freebsd_committer freebsd_triage 2018-03-27 20:46:47 UTC
A commit references this bug:

Author: emaste
Date: Tue Mar 27 20:46:44 UTC 2018
New revision: 465749
URL: https://svnweb.freebsd.org/changeset/ports/465749

Log:
  www/cgihtml: set LLD_UNSAFE

  This port passes an unusual option to the linker that is accepted by
  ld.bfd but rejected by ld.lld.  Linking with lld fails with:

  ld: error: -O: number expected, but got 'string-lib.o'

  PR:		226992
  Approved by:	portmgr (LLD_UNSAFE blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/www/cgihtml/Makefile
Comment 2 Ed Maste freebsd_committer freebsd_triage 2018-03-27 20:47:23 UTC
Workaround applied.