Re: git: 58dba5b8212f - main - devel/llvm19: prune build on 32-bit archs

From: Piotr Kubaj <pkubaj_at_anongoth.pl>
Date: Wed, 28 Aug 2024 09:22:27 UTC
Response inline.

On 24-08-27 19:23:37, Brooks Davis wrote:
> The branch main has been updated by brooks:
> 
> URL: https://cgit.FreeBSD.org/ports/commit/?id=58dba5b8212fd4dc77e07f58810ae959ae29fc6e
> 
> commit 58dba5b8212fd4dc77e07f58810ae959ae29fc6e
> Author:     Brooks Davis <brooks@FreeBSD.org>
> AuthorDate: 2024-08-27 19:23:23 +0000
> Commit:     Brooks Davis <brooks@FreeBSD.org>
> CommitDate: 2024-08-27 19:23:23 +0000
> 
>     devel/llvm19: prune build on 32-bit archs
>     
>     Given trends in compiler resource use, it is incresingly implausible to
>     consider cross-development from a 32-bit system.  As such, stop spending
>     time building LLVM bits are are vinishingly unlikely to be used on
>     32-bit systems.
>     
>     Default to BE_NATIVE (no cross build support) on 32-bit plaforms.
>     Disable BE_AMDGPU and BE_WASM as well.  BE_AMDGPU consumes enormous
>     amounts of memory.  BE_WASM is less problematic, but no one has stood up
>     to say they need it so turn it off for now.
>     
>     Completely disable MLIR and POLLY on 32-bit.  Just building MLIR fails
>     routinly on armv7 and there aren't a lot of direct users (it's used by
>     FLANG, but FLANG is 64-bit only).  Polly is pretty niche and adds quite
>     a bit of build time.
>     
>     Sponsored by:   DARPA, AFRL
>     Differential Revision:  https://reviews.freebsd.org/D46239
> ---
>  devel/llvm19/Makefile | 44 +++++++++++++++++++++++++++++---------------
>  1 file changed, 29 insertions(+), 15 deletions(-)
> 
> diff --git a/devel/llvm19/Makefile b/devel/llvm19/Makefile
> index 61a8a9f89200..73d9cec01335 100644
> --- a/devel/llvm19/Makefile
> +++ b/devel/llvm19/Makefile
> @@ -65,6 +65,7 @@ SHEBANG_FILES=	\
>  
>  SUB_FILES=	llvm-wrapper.sh
>  SUB_LIST=	LLVM_PREFIX="${LLVM_PREFIX}" LLVM_SUFFIX="${LLVM_SUFFIX}"
> +OPTIONS_SUB=	yes
>  
>  CMAKE_INSTALL_PREFIX=	${LLVM_PREFIX}
>  CMAKE_SOURCE_PATH=	${WRKSRC}/llvm
> @@ -85,33 +86,46 @@ CMAKE_ARGS+=	-DLLVM_ENABLE_TERMINFO=OFF
>  CMAKE_ARGS+=	-DLLVM_VERSION_SUFFIX=
>  
>  OPTIONS_DEFINE=	BE_AMDGPU BE_WASM CLANG COMPILER_RT DOCS LLD STATIC_LIBS
> -OPTIONS_DEFAULT=	BE_AMDGPU BE_WASM CLANG LLD
>  OPTIONS_SINGLE=		BACKENDS
>  OPTIONS_SINGLE_BACKENDS=BE_FREEBSD BE_NATIVE BE_STANDARD
> +
> +OPTIONS_DEFAULT=	CLANG LLD
> +
> +# BE_NATIVE for 32-bit
> +OPTIONS_DEFAULT_armv6=	BE_NATIVE
> +OPTIONS_DEFAULT_armv7=	BE_NATIVE
> +OPTIONS_DEFAULT_i386=	BE_NATIVE
> +OPTIONS_DEFAULT_power=	BE_NATIVE

Didn't you mean here OPTIONS_DEFAULT_powerpc and
OPTIONS_DEFAULT_powerpcspe?

> +# FLAVOR-dependent BE for 64-bit
> +_BE_default=	BE_STANDARD BE_AMDGPU BE_WASM
> +_BE_lite=	BE_FREEBSD BE_AMDGPU BE_WASM
> +OPTIONS_DEFAULT_aarch64=	${_BE_${FLAVOR}}
> +OPTIONS_DEFAULT_amd64=		${_BE_${FLAVOR}}
> +OPTIONS_DEFAULT_powerpc64=	${_BE_${FLAVOR}}
> +OPTIONS_DEFAULT_powerpc64le=	${_BE_${FLAVOR}}
> +
>  OPTIONS_EXCLUDE_armv6=	COMPILER_RT
>  OPTIONS_EXCLUDE_armv7=	COMPILER_RT
> -OPTIONS_SUB=	yes
>  
> -.if ${FLAVOR:Mlite}
> -OPTIONS_DEFAULT+=	BE_FREEBSD
> -.else
> +.if ${FLAVOR:Mdefault}
>  OPTIONS_DEFINE+=	EXTRAS FLANG LIT LLDB MLIR OPENMP PYCLANG POLLY
>  OPTIONS_DEFINE_amd64=	GOLD
>  OPTIONS_DEFINE_powerpc=	GOLD
>  OPTIONS_DEFINE_powerpc64=	GOLD
>  OPTIONS_DEFINE_powerpc64le=	GOLD
>  
> -OPTIONS_DEFAULT+=	BE_STANDARD COMPILER_RT EXTRAS LIT LLDB MLIR OPENMP \
> +OPTIONS_DEFAULT+=	COMPILER_RT EXTRAS LIT LLDB MLIR OPENMP \
>  			PYCLANG POLLY STATIC_LIBS
> -OPTIONS_DEFAULT_amd64=	GOLD
> -OPTIONS_DEFAULT_powerpc=	GOLD
> -OPTIONS_DEFAULT_powerpc64=	GOLD
> -OPTIONS_DEFAULT_powerpc64le=	GOLD
> -
> -OPTIONS_EXCLUDE_armv6+=	FLANG OPENMP
> -OPTIONS_EXCLUDE_armv7+=	FLANG OPENMP
> -OPTIONS_EXCLUDE_i386=	FLANG OPENMP
> -OPTIONS_EXCLUDE_powerpc=	FLANG OPENMP
> +OPTIONS_DEFAULT_amd64+=	GOLD
> +OPTIONS_DEFAULT_powerpc+=	GOLD
> +OPTIONS_DEFAULT_powerpc64+=	GOLD
> +OPTIONS_DEFAULT_powerpc64le+=	GOLD
> +
> +_OPTIONS_EXCLUDE_ptr32=	FLANG MLIR OPENMP POLLY
> +OPTIONS_EXCLUDE_armv6+=	${_OPTIONS_EXCLUDE_ptr32}
> +OPTIONS_EXCLUDE_armv7+=	${_OPTIONS_EXCLUDE_ptr32}
> +OPTIONS_EXCLUDE_i386=	${_OPTIONS_EXCLUDE_ptr32}
> +OPTIONS_EXCLUDE_powerpc=	${_OPTIONS_EXCLUDE_ptr32}
>  OPTIONS_EXCLUDE_riscv64=	LLDB
>  .endif
>