Re: Avoiding llvm from ports on rpi4
- Reply: Nuno Teixeira : "Re: Avoiding llvm from ports on rpi4"
- Reply: Mark Millard : "Re: Avoiding llvm from ports on rpi4"
- In reply to: Mark Millard : "Re: Avoiding llvm from ports on rpi4"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 22 Feb 2025 19:08:33 UTC
Good point! I forgot to check options on port that are suitable for an rpi4!
I was straight to hacking stuff :)
As I don't know if any graphics acceleration is working on rpi4, I'm
building with:
_OPTIONS_READ=mesa-dri-24.1.7_4
_FILE_COMPLETE_OPTIONS_LIST=ZSTD panfrost r300 r600 radeonsi swrast zink
X11 WAYLAND radv swrast_vk
OPTIONS_FILE_SET+=ZSTD
OPTIONS_FILE_UNSET+=panfrost
OPTIONS_FILE_UNSET+=r300
OPTIONS_FILE_UNSET+=r600
OPTIONS_FILE_UNSET+=radeonsi
OPTIONS_FILE_UNSET+=swrast
OPTIONS_FILE_UNSET+=zink
OPTIONS_FILE_SET+=X11
OPTIONS_FILE_SET+=WAYLAND
OPTIONS_FILE_UNSET+=radv
OPTIONS_FILE_UNSET+=swrast_vk
While I'm really don't sure is panfrost os working or not...
I will see if I get working graphics this way and check if llvm dep is gone.
Thanks!
Mark Millard <marklmi@yahoo.com> escreveu (sábado, 22/02/2025 à(s) 18:56):
> On Feb 22, 2025, at 08:06, Nuno Teixeira <eduardo@freebsd.org> wrote:
>
> > Hello,
> >
> > Building llvm19 as a dependency just for mesa-dri is something
> > that I like to tweak to avoid waiting >15 hours building it.
> >
> > pkg info -r llvm19
> > llvm19-19.1.7_1:
> > mesa-dri-24.1.7_4
> >
> > There is a PR about it, but I don't know the best way to hack it:
> > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238906
>
> I added some notes that that bugzilla:
>
> QUOTE
> The system's clang/clang++ build (from based on
> LLVM) does not include what mesa-dri uses from
> LLVM.
> END QUOTE
>
> QUOTE
> In fact, mesa-dri uses LLVM as a library, not
> as a compiler (not clang/clang++):
>
> USES+= llvm:lib,noexport
>
> mesa-dri also uses other ports that are LLVM
> based (at least when iris is to be supported):
>
> devel/libclc@${LLVM_PORT:T}
> spirv-llvm-translator@${LLVM_PORT:T}
>
> Those references are from doing:
>
> # grep -i llvm /usr/ports/graphics/mesa-dri/Makefile
> USES+= llvm:lib,noexport
> iris_BUILD_DEPENDS= libclc-${LLVM_PORT:T}>0:devel/libclc@${LLVM_PORT:T} \
> spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@
> ${LLVM_PORT:T}
> spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@
> ${LLVM_PORT:T}
> iris_CONFIGURE_ENV= PKG_CONFIG_PATH="${LLVM_PREFIX}/libdata/pkgconfig"
> libclc-${LLVM_PORT:T}>0:devel/libclc@${LLVM_PORT:T} \
> spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@
> ${LLVM_PORT:T}
> spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@
> ${LLVM_PORT:T}
> anv_CONFIGURE_ENV= PKG_CONFIG_PATH="${LLVM_PREFIX}/libdata/pkgconfig"
> END QUOTE
>
> The notation suggests that devel/libclc and
> devel/spirv-llvm-translator that mesa-dri
> can have involved are somehow specific to
> the same LLVM variant that mesa-dri uses.
>
>
> A question is what llvm build options are you using
> for LLVM?
>
> Are you building MLIR? FLANG? POLLY? If yes, do you
> need to for your context? (As I remember MLIR and
> POLLY are built by default. FLANG is not but
> requires MLIR if FLANG is listed as an option.)
>
> The default options are set up for the official
> builds to support all the different usage contexts
> in the ports tree (or near it).
>
> Are you building LLVM such that it supports
> targeting powerpc*? riscv64? amd64 and i386?
> There are ways to avoid building materials for
> taretting those. You might be able to use
> BE_NATIVE instead of BE_STANDARD and avoid
> such.
>
> Do you need to target aarch64 and/or armv7 for
> your specific usage context for devel/llvm*?
> (It likely would take Makefile changes to avoid
> building to support those.)
>
> A similar set of question goes for mesa-dri:
> Do you need all of:
>
> OPTIONS_DEFINE= ZSTD
> OPTIONS_GROUP= GALLIUM PLATFORM VULKAN
> OPTIONS_GROUP_PLATFORM= X11 WAYLAND
> OPTIONS_GROUP_GALLIUM= crocus i915 iris panfrost r300 r600 radeonsi svga
> swrast zink
> OPTIONS_GROUP_VULKAN= anv radv swrast_vk
>
> For example avoiding iris looks to avoid the
> devel/libclc@${LLVM_PORT:T} and
> devel/spirv-llvm-translator@${LLVM_PORT:T}
> involvement.
>
> Out of the above, what do you actually need
> for your RPi4 activity? Which do not need to
> be supported for your activity?
>
>
> ===
> Mark Millard
> marklmi at yahoo.com
>
>
--
Nuno Teixeira
FreeBSD UNIX: <eduardo@FreeBSD.org> Web: https://FreeBSD.org