[Bug 226991] lang/smlnj: fails to link with lld as the system linker
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue Mar 27 16:09:32 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226991
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 at FreeBSD.org
Reporter: emaste at freebsd.org
CC: joemann at beefree.free.de
Blocks: 214864
CC: joemann at beefree.free.de
Flags: maintainer-feedback?(joemann at 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 the
exp-run, PR 214864.
An excerpt from the build log[2]:
---
cc -o run.x86-freebsd.so -O2 -pipe -m32 -fstack-protector -fno-strict-aliasing
-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
../c-libs/posix-os/libposix-os.a ../c-libs/smlnj-runtime/libsmlnj-runt.a
../c-libs/smlnj-signals/libsmlnj-sig.a ../c-libs/smlnj-prof/libsmlnj-prof.a
../c-libs/smlnj-sockets/libsmlnj-sock.a ../c-libs/smlnj-time/libsmlnj-time.a
../c-libs/smlnj-date/libsmlnj-date.a ../c-libs/smlnj-math/libsmlnj-math.a
../c-libs/posix-process/libposix-process.a
../c-libs/posix-procenv/libposix-procenv.a
../c-libs/posix-filesys/libposix-filesys.a ../c-libs/posix-io/libposix-io.a
../c-libs/posix-sysdb/libposix-sysdb.a
../c-libs/posix-signal/libposix-signal.a ../c-libs/posix-tty/libposix-tty.a
../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-freebsd.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=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/smlnj-110.77.log
Referenced Bugs:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214864
[Bug 214864] [exp-run] test build with lld as /usr/bin/ld
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-ports-bugs
mailing list