Thursday, December 27, 2018

Re: [stu@spacehopper.org: RFC: USE_LLD=No for default-is-lld arches]

On Tue, Dec 25, 2018 at 08:15:55PM +0000, Stuart Henderson wrote:
> Any objections or OKs?

The principle is good.

> ----- Forwarded message from Stuart Henderson <stu@spacehopper.org> -----
>
> From: Stuart Henderson <stu@spacehopper.org>
> Date: Tue, 30 Oct 2018 11:54:15 +0000
> To: ports <ports@openbsd.org>
> User-Agent: NeoMutt/20180716
> Subject: RFC: USE_LLD=No for default-is-lld arches
> Mail-Followup-To: ports <ports@openbsd.org>
>
> Not sure if this is useful or unnecessary bloat, it provides a way to switch
> back to ld.bfd on arches which default to ld.lld to switch back to ld.bfd.
> (It hasn't gone into a bulk yet). Thoughts?
>
>
> Index: bsd.port.mk
> ===================================================================
> RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
> retrieving revision 1.1450
> diff -u -p -r1.1450 bsd.port.mk
> --- bsd.port.mk 18 Oct 2018 09:38:32 -0000 1.1450
> +++ bsd.port.mk 30 Oct 2018 11:52:03 -0000
> @@ -392,12 +392,6 @@ BASELOCALSTATEDIR ?= ${VARBASE}
> LOCALSTATEDIR ?= ${BASELOCALSTATEDIR}
>
> RCDIR ?= /etc/rc.d
> -USE_LLD ?= No
> -.if ${USE_LLD:L} == "yes"
> -_LD_PROGRAM = /usr/bin/ld.lld
> -.else
> -_LD_PROGRAM = /usr/bin/ld
> -.endif
> USE_WXNEEDED ?= No
> .if ${USE_WXNEEDED:L} == "yes"
> _WXNEEDED_FLAGS = -z wxneeded
> @@ -795,6 +789,30 @@ CONFIGURE_ENV += ${_EXTRA_ENV}
> MAKE_ENV += ${_EXTRA_ENV}
> .endif
>
> +.if ${PROPERTIES:Mlld}
> +USE_LLD ?= Yes
> +.else
> +USE_LLD ?= No
> +.endif
> +
> +.if ${USE_LLD:L} == "yes"
> +_LD_PROGRAM = /usr/bin/ld.lld
> +. if ! ${PROPERTIES:Mlld}
> +_NONDEFAULT_LD = Yes
> +. endif
> +.else
> +_LD_PROGRAM = /usr/bin/ld.bfd
> +. if ${PROPERTIES:Mlld}
> +_NONDEFAULT_LD = Yes
> +. endif
> +.endif
> +


> +.if ${_LD_PROGRAM} != ${_LD_DEFAULT}
> +_NONDEFAULT_LD = Yes
> +.else
> +_NONDEFAULT_LD = No
> +.endif
> +
What's this ? Especially where does _LD_DEFAULT come from ?

> # setup locations of compilers from the base system or environment variables.
> # MODULES for compilers (gcc4.port.mk, clang.port.mk) also append to this,
> # used to write wrappers to WRKDIR/bin which is at the head of the PATH.
> @@ -2667,7 +2685,7 @@ ${_PATCH_COOKIE}: ${_EXTRACT_COOKIE}
>
> # Run as _pbuild
> _post-patch-finalize:
> -.if ${USE_WXNEEDED:L} == "yes" || ${USE_LLD:L} == "yes"
> +.if ${USE_WXNEEDED:L} == "yes" || ${_NONDEFAULT_LD:L} == "yes"
> @wrktmp=`df -P ${WRKOBJDIR_${PKGPATH}} | awk 'END { print $$6 }'`; \
> if ! mount | grep -q " $${wrktmp} .*wxallowed"; then \
> echo "Fatal: ${WRKOBJDIR_${PKGPATH}} must be on a wxallowed filesystem" \
Apart from this nit, it looks fine.

No comments:

Post a Comment