Re: Avoiding llvm from ports on rpi4

Nuno Teixeira <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <CAFDf7U+8V_QUM3z0z+5afNg3b-sRiVyafue+WnZEXtxncgP2TQ@mail.gmail.com>
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 <[email protected]> escreveu (sábado, 22/02/2025 à(s) 18:56):

> On Feb 22, 2025, at 08:06, Nuno Teixeira <[email protected]> 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:  <[email protected]>   Web:  https://FreeBSD.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.