HAVE_LLVM is only established by configure.ac if LLVM_CONFIG = yes. LLVM_CONFIG will only be "yes" if enable_r600_llvm is specified. If HAVE_LLVM is not declared, then the build of mesa/mesa/src/gallium/drivers/radeon/r600_pipe_common.c DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DLLVM_VERSION_PATCH=$LLVM_VERSION_PATCH" Fails with: make[3]: Entering directory '/home/jessie/xserver_tmp/src/mesa/mesa/src/gallium/drivers/radeon' CC r600_pipe_common.lo r600_pipe_common.c: In function 'r600_get_compute_param': r600_pipe_common.c:503:40: error: 'HAVE_LLVM' undeclared (first use in this function) if (rscreen->family <= CHIP_ARUBA || HAVE_LLVM < 0x0306) { ^ r600_pipe_common.c:503:40: note: each undeclared identifier is reported only once for each function it appears in Makefile:668: recipe for target 'r600_pipe_common.lo' failed make[3]: *** [r600_pipe_common.lo] Error 1
Created attachment 111998 [details] [review] Don't build LLVM related code when HAVE_LLVM isn't defined Does this patch work?
The patch seems to be in the right direction of removing the dependance of LLVM in the source code, but I dont have hardware to test functionality. I can test that it compiles when LLVM isn't specified on Monday. I don't have enough knowledge on the internal workings of the driver to make comments on the implications of the code chages though. A couple of notes I meant to add last night: Build Environment: - Building directly on an ARM platform. imx6 - very similar to sabrelite. - I set the prefix to be someplace in my /home directory via the X.org build.sh script. - Flags: --enable-driglx-direct --enable-gles1 --enable-gles2 --enable-glx --with-dri-drivers=radeon Additional notes about the mesa build with llvm: Normally the auto setting for enable_gallium_llvm will set enable_gallium=llvm=yes and trigger llvm to be used with the driver. This is NOT the case if the host CPU is not i*86/x96_64/AMD64. See the current snippet below from configure.ac if test "x$enable_gallium_llvm" = xauto; then case "$host_cpu" in i*86|x86_64|amd64) enable_gallium_llvm=yes;; esac fi Tests I did: - I hacked the configure.ac to always set enable_gallium_llvm=yes and was able to get the gallium r600 driver to build and subsquently mesa. - I, somewhat stupidly, tested --with-dri-drivers=nouveau and not --with-gallium-drivers=nouveau because I dont care about the drivers - I will end up using Freescale/Vivante drivers. BUT - can the two be aligned or at least checked for inconsistencies. Questions: - Does it make sense to migrate the default to use LLVM for ARM platforms? At the end of the day I didnt really care about the drivers themselves because I will be dropping in Vivante drivers via Freescale, but I needed mesa/gallium to build. I should have cut the gallium drivers out, but I was concerned I had my build environment/paths setup correctly.
Fixed with bed6f20f28af8bf531c14e3cab12a00354a31. Closing.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.