Bug 226994 - devel/memleax: fails to link with lld as the system linker
Summary: devel/memleax: 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: Tobias Kortkamp
Depends on:
Blocks: 214864
  Show dependency treegraph
Reported: 2018-03-27 16:16 UTC by Ed Maste
Modified: 2018-05-30 16:52 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (guy.tabrar)


Note You need to log in before you can comment on or make changes to this bug.
Description Ed Maste freebsd_committer 2018-03-27 16:16:14 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]:
checking OS and machine type...
on FreeBSD.
checking libraries...
checking libunwind...
libunwind is missing.
Error: libunwind-devel is required.
===>  Script "configure" failed unexpectedly.

The configure failure may be due to shared object protected visibility symbol preemption issues; setting LLD_UNSAFE=yes may be a suitable workaround (to use ld.bfd).

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/memleax-1.0.3.log
Comment 1 commit-hook freebsd_committer 2018-05-30 12:34:37 UTC
A commit references this bug:

Author: tobik
Date: Wed May 30 12:34:16 UTC 2018
New revision: 471131
URL: https://svnweb.freebsd.org/changeset/ports/471131

  Mark devel/memleax LLD_UNSAFE same as devel/libunwind

  /usr/bin/ld: error: cannot preempt symbol: _Ux86_64_create_addr_space
  >>> defined in /usr/local/lib/libunwind-x86_64.so
  >>> referenced by tmp.c
  >>>               /tmp/tmp-e91e1b.o:(main)

  PR:		226994
  Submitted by:	emaste