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 ?
By the way, I would probably code it differently to avoid the loop and
expensive computations:
_LLD_EMUL_aarch64 = aarch64elf
...
.if defined(_LLD_EMUL_${MACHINE_ARCH})
LLD_EMUL = -m${_LLD_EMUL_${MACHINE_ARCH}}
.else
LLD_EMUL =
.endif
No comments:
Post a Comment