On Wed, Dec 04, 2019 at 12:45:46PM +0000, Stuart Henderson wrote:
> On 2019/12/04 12:17, Marc Espie wrote:
> > On Wed, Dec 04, 2019 at 10:48:06AM +0000, Stuart Henderson wrote:
> > > Currently LLD_EMUL is only set for LLD_ARCHS (aarch64 amd64 arm i386).
> > > A diff to unbreak mupdf build on mips64 requires linking with lld and this
> > > variable is required. Rather than adding a custom LLD_EMUL definition in
> > > mupdf let's just make the arch-defines.mk one reachable.
> > >
> > > OK?
> > >
> > > Index: arch-defines.mk
> > > ===================================================================
> > > RCS file: /cvs/ports/infrastructure/mk/arch-defines.mk,v
> > > retrieving revision 1.69
> > > diff -u -p -1 -1 -r1.69 arch-defines.mk
> > > --- arch-defines.mk 9 Nov 2019 15:08:09 -0000 1.69
> > > +++ arch-defines.mk 4 Dec 2019 10:45:44 -0000
> > > @@ -57,23 +57,23 @@ DEBUG_PACKAGES =
> > > DEBUG_FILES =
> > > .endif
> > >
> > > .if ${PROPERTIES:Mclang}
> > > LIBCXX = c++ c++abi pthread
> > > LIBECXX = c++ c++abi pthread
> > > .else
> > > LIBCXX = stdc++ pthread
> > > LIBECXX = estdc++>=17 pthread
> > > .endif
> > >
> > > -.if ${PROPERTIES:Mlld}
> > > +.if ${PROPERTIES:Mlld} || defined(USE_LLD) && ${USE_LLD:L} == yes
> > > # see llvm/tools/lld/ELF/Driver.cpp
> > > . for A in aarch64.aarch64elf amd64.elf_amd64 arm.armelf i386.elf_i386 \
> > > mips64.elf64btsmip mips64el.elf64ltsmip powerpc.elf32ppc \
> > > sparc64.elf64_sparc
> > > . if ${MACHINE_ARCH} == ${A:R}
> > > LLD_EMUL = -m${A:E}
> > > . endif
> > > . endfor
> > > .else
> > > LLD_EMUL =
> > > .endif
> > >
> > Would there be a downside to just always set LLD_EMUL ?
>
> It needs to use different strings depending on the linker used:
>
> arch ld.bfd ld.lld
> i386 elf_i386_obsd elf_i386
> amd64 elf_x86_64_obsd elf_amd64
> aarch64 n/a aarch64elf
> arm armelf_obsd armelf
> mips64 elf64btsmip_obsd elf64btsmip
> mips64el elf64ltsmip_obsd elf64ltsmip
> powerpc elf32ppc_obsd elf32ppc
> sparc64 elf64_sparc_obsd elf64_sparc64
>
> Since ld.bfd has a default anyway, it seems easier to leave it unset
> rather than carry a second table plus risk breakage (not that this is
> really widely used; only mupdf, net/utox, www/mozplugger).
Well, it's called LLD_EMUL.
Shouldn't it be just for LLD ?
BTW, LLD_EMUL was never documented. Blame naddy@
No comments:
Post a Comment