Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Mar 2018 16:09:30 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 226991] lang/smlnj: fails to link with lld as the system linker
Message-ID:  <bug-226991-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D226991

            Bug ID: 226991
           Summary: lang/smlnj: fails to link with lld as the system
                    linker
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: freebsd-ports-bugs@FreeBSD.org
          Reporter: emaste@freebsd.org
                CC: joemann@beefree.free.de
            Blocks: 214864
                CC: joemann@beefree.free.de
             Flags: maintainer-feedback?(joemann@beefree.free.de)

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 t=
he
exp-run, PR 214864.

An excerpt from the build log[2]:
---
cc -o run.x86-freebsd.so -O2 -pipe  -m32 -fstack-protector -fno-strict-alia=
sing
-shared main.o c-libraries.o unix-raise-syserr.o ml-options.o  boot.o load-=
ml.o
run-ml.o globals.o ml-state.o  error.o timers.o unix-timers.o  qualify-name=
.o
swap-bytes.o  unix-fault.o signal-util.o unix-signal.o unix-prof.o prim.o=
=20=20=20=20
../c-libs/posix-os/libposix-os.a  ../c-libs/smlnj-runtime/libsmlnj-runt.a=20
../c-libs/smlnj-signals/libsmlnj-sig.a  ../c-libs/smlnj-prof/libsmlnj-prof.=
a=20
../c-libs/smlnj-sockets/libsmlnj-sock.a  ../c-libs/smlnj-time/libsmlnj-time=
.a=20
../c-libs/smlnj-date/libsmlnj-date.a  ../c-libs/smlnj-math/libsmlnj-math.a=
=20
../c-libs/posix-process/libposix-process.a=20
../c-libs/posix-procenv/libposix-procenv.a=20
../c-libs/posix-filesys/libposix-filesys.a  ../c-libs/posix-io/libposix-io.=
a=20
../c-libs/posix-sysdb/libposix-sysdb.a=20
../c-libs/posix-signal/libposix-signal.a  ../c-libs/posix-tty/libposix-tty.=
a=20
../c-libs/posix-error/libposix-error.a ../gc/libgc.a  ../memory/libmem.a
../c-libs/dl/libunix-dynload.a  -lm
/usr/bin/ld: error: can't create dynamic relocation R_386_32 against symbol:
__stderrp in readonly segment; recompile object files with -fPIC
>>> defined in /usr/lib32/libc.so.7
>>> referenced by main.c
>>>               main.o:(main)

/usr/bin/ld: error: can't create dynamic relocation R_386_32 against symbol:
DebugF in readonly segment; recompile object files with -fPIC
>>> defined in main.o
>>> referenced by main.c
>>>               main.o:(main)

...


strip: open
/wrkdirs/usr/ports/lang/smlnj/work/stage/usr/local/smlnj/bin/.run/run.x86-f=
reebsd.so
failed: No such file or directory
---

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=3Dyes, 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.h=
tml
[2]
http://package18.nyi.freebsd.org/data/headamd64PR214864-default/2018-03-21_=
17h43m11s/logs/errors/smlnj-110.77.log


Referenced Bugs:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D214864
[Bug 214864] [exp-run] test build with lld as /usr/bin/ld
--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-226991-13>