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>