[Bug 250336] lang/clover: link failure after update to 20.2

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Oct 14 16:53:07 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=250336

--- Comment #4 from John Hein <jcfyecrayz at liamekaens.com> ---
(In reply to John Hein from comment #3)
Let me amend that last comment.  I don't think it hurts to add -fuse-ld=lld
even if the default linker is lld already.  It may be better than adding
conditional logic.

In other words, I think (a) might be better than (b) for simplicity.  -fuse-ld
is certainly less expensive than a dependency on devel/binutils, so the
largest(?) advantage of using the conditional logic is diminished.

(a)

LDFLAGS+= -fuse-ld=lld

(b)

.if ${/usr/bin/ld:L:tA} != /usr/bin/ld.lld
LDFLAGS+= -fuse-ld=lld
.endif

But (b) might be easier to grep for when 11.x goes away.  An OSVERSION test
would have that advantage as well.

Either of the above can benefit from a comment and maybe even a USES=lld which
can be pruned after 11.x goes away:

# The base ld(1) in 11.x has troubles for a number of ports
# where --as-needed and --start-group/--end-group is used
# with a mix of shared and static libraries.  Getting the
# order of libraries on the command line can sometimes
# work around ld(1)'s troubles.  But using the lld linker
# handles this issue more simply.
# After 11.x is no longer supported, this can be removed
# as the default linker on 12.x+ works fine in these cases.


A handful of other ports are having troubles with 11.x ld(1) after the recent
update of various gnome related ports to use meson.  These have been failing
for a couple weeks now in the freebsd package builder.

These bugs suggest the -fuse-ld=lld fix for some of them:

bug 249418
bug 249974
bug 249990

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.


More information about the freebsd-x11 mailing list