Re: Avoiding llvm from ports on rpi4
Nuno Teixeira <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.arm |
|---|---|
| Message-ID | <CAFDf7UKgS0zL+Y+tRTZuA=-hQb9DFZQdQ+tXRwujna_9n_nmLg@mail.gmail.com> |
(...) But even with all options disabled as shown to aarch64 arch in previous e-mail, I will need to deal with `USES+= llvm:lib,noexport`... Nuno Teixeira <[email protected]> escreveu (sábado, 22/02/2025 à(s) 19:08): > 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 > -- Nuno Teixeira FreeBSD UNIX: <[email protected]> Web: https://FreeBSD.org