[Mesa-dev] [PATCH] swr: bump minimum supported LLVM version to 5.0
Juan A. Suarez Romero
jasuarez at igalia.com
Thu Jun 21 09:42:29 UTC 2018
On Tue, 2018-06-19 at 11:53 +0200, Juan A. Suarez Romero wrote:
> On Mon, 2018-06-18 at 16:29 +0100, Eric Engestrom wrote:
> > On Monday, 2018-06-18 16:23:41 +0200, Juan A. Suarez Romero wrote:
> > > RADV now requires LLVM 5.0 or greater, and thus we can't build dist
> > > tarball because swr requires LLVM 4.0.
> > >
> > > Let's bump required LLVM to 5.0 in swr too.
> > >
> > > Fixes: f9eb1ef870 ("amd: remove support for LLVM 4.0")
> > > Cc: George Kyriazis <george.kyriazis at intel.com>
> > > Cc: Tim Rowley <timothy.o.rowley at intel.com>
> > > Cc: Emil Velikov <emil.velikov at collabora.com>
> > > Cc: Dylan Baker <dylan at pnwbakers.com>
> > > Cc: Eric Engestrom <eric.engestrom at imgtec.com>
> >
> > s/imgtec/intel/ :)
> > (I moved)
> >
>
> Fixed :)
>
> > > ---
> > > .travis.yml | 12 ++++++------
> > > configure.ac | 7 ++++---
> > > meson.build | 4 +---
> > > src/gallium/drivers/swr/Makefile.am | 6 +++---
> > > src/gallium/drivers/swr/SConscript | 4 ++--
> > > 5 files changed, 16 insertions(+), 17 deletions(-)
> > >
> > > diff --git a/.travis.yml b/.travis.yml
> > > index b1fc7de9587..c9a30fa0ef5 100644
> > > --- a/.travis.yml
> > > +++ b/.travis.yml
> > > @@ -92,7 +92,7 @@ matrix:
> > > - BUILD=make
> > > - MAKEFLAGS="-j4"
> > > - MAKE_CHECK_COMMAND="true"
> > > - - LLVM_VERSION=4.0
> > > + - LLVM_VERSION=5.0
> > > - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> > > - OVERRIDE_CC="gcc-4.8"
> > > - OVERRIDE_CXX="g++-4.8"
> > > @@ -105,12 +105,12 @@ matrix:
> > > addons:
> > > apt:
> > > sources:
> > > - - llvm-toolchain-trusty-4.0
> > > + - llvm-toolchain-trusty-5.0
> > > packages:
> > > # LLVM packaging is broken and misses these dependencies
> > > - libedit-dev
> > > # From sources above
> > > - - llvm-4.0-dev
> > > + - llvm-5.0-dev
> > > # Common
> > > - xz-utils
> > > - x11proto-xf86vidmode-dev
> > > @@ -432,7 +432,7 @@ matrix:
> > > - BUILD=scons
> > > - SCONSFLAGS="-j4"
> > > - SCONS_TARGET="swr=1"
> > > - - LLVM_VERSION=4.0
> > > + - LLVM_VERSION=5.0
> > > - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> > > # Keep it symmetrical to the make build. There's no actual SWR, yet.
> > > - SCONS_CHECK_COMMAND="true"
> > > @@ -441,13 +441,13 @@ matrix:
> > > addons:
> > > apt:
> > > sources:
> > > - - llvm-toolchain-trusty-4.0
> > > + - llvm-toolchain-trusty-5.0
> > > packages:
> > > - scons
> > > # LLVM packaging is broken and misses these dependencies
> > > - libedit-dev
> > > # From sources above
> > > - - llvm-4.0-dev
> > > + - llvm-5.0-dev
> > > # Common
> > > - xz-utils
> > > - x11proto-xf86vidmode-dev
> > > diff --git a/configure.ac b/configure.ac
> > > index 7a0e4754208..543b6fe061b 100644
> > > --- a/configure.ac
> > > +++ b/configure.ac
> > > @@ -110,7 +110,7 @@ LLVM_REQUIRED_OPENCL=3.9.0
> > > LLVM_REQUIRED_R600=3.9.0
> > > LLVM_REQUIRED_RADEONSI=5.0.0
> > > LLVM_REQUIRED_RADV=5.0.0
> > > -LLVM_REQUIRED_SWR=4.0.0
> > > +LLVM_REQUIRED_SWR=5.0.0
> > >
> > > dnl Check for progs
> > > AC_PROG_CPP
> > > @@ -2755,8 +2755,9 @@ if test -n "$with_gallium_drivers"; then
> > > fi
> > >
> > > # XXX: Keep in sync with LLVM_REQUIRED_SWR
> > > -AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x4.0.0 -a \
> > > - "x$LLVM_VERSION" != x4.0.1)
> > > +AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x5.0.0 -a \
> > > + "x$LLVM_VERSION" != x5.0.1 -a \
> > > + "x$LLVM_VERSION" != x5.0.2)
> >
> > That check seems designed to break every time something in mesa changes
> > supported llvm version. Is there a reason for it not to be a simple
> > `>= 4.0` check?
> >
>
> Because gen_builder.hpp is a generated file and it contains information that is
> specific to the LLVM version it originates from. Apparently, this file is
> forward compatible, but not backward, and it is included in dist tarball.
>
> I guess the problem is that if you end up building the distball with, let's say
> LLVM 6.0, then the tarball couldn't be built with LLVM 5.0, due this file
> compatibility. Hence why it "forces" to use the minimum common LLVM version for
> all the drivers.
>
> This was added in commit 5233eaf9ee8 ("automake: add SWR LLVM gen_builder.hpp
> workaround") and modified in commit b39f6d5fc7c ("travis: radeonsi and radv need
> LLVM 4.0").
>
>
> J.A.
>
> > That's the hunk that was causing issues, wasn't it? Everything else in
> > this patch is just to keep the same version number everywhere?
> >
> > Other than that, the patch itself looks reasonable, so given a good
> > answer to "why is this so fragile?", you can have my:
> > Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
> >
Eric, Is the answer for "why is this so fragile?" enough for you? :)
> > Otherwise, I would prefer to just turn the autotools check into
> > a `>= 4.0` like everything else does.
> >
> > >
> > > if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then
> > > llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium"
> > > diff --git a/meson.build b/meson.build
> > > index 65ae32172d2..a5662160d66 100644
> > > --- a/meson.build
> > > +++ b/meson.build
> > > @@ -1130,10 +1130,8 @@ if with_gallium_opencl
> > > llvm_optional_modules += ['coroutines', 'opencl']
> > > endif
> > >
> > > -if with_amd_vk or with_gallium_radeonsi
> > > +if with_amd_vk or with_gallium_radeonsi or with_gallium_swr
> > > _llvm_version = '>= 5.0.0'
> > > -elif with_gallium_swr
> > > - _llvm_version = '>= 4.0.0'
> > > elif with_gallium_opencl or with_gallium_r600
> > > _llvm_version = '>= 3.9.0'
> > > else
> > > diff --git a/src/gallium/drivers/swr/Makefile.am b/src/gallium/drivers/swr/Makefile.am
> > > index 8b3150288e6..5cc3f77478a 100644
> > > --- a/src/gallium/drivers/swr/Makefile.am
> > > +++ b/src/gallium/drivers/swr/Makefile.am
> > > @@ -374,9 +374,9 @@ include $(top_srcdir)/install-gallium-links.mk
> > > # created with the oldest supported version of LLVM.
> > > dist-hook:
> > > if SWR_INVALID_LLVM_VERSION
> > > - @echo "*******************************************************"
> > > - @echo "LLVM 4.0.0 or LLVM 4.0.1 required to create the tarball"
> > > - @echo "*******************************************************"
> > > + @echo "*****************************************"
> > > + @echo "LLVM 5.0.x required to create the tarball"
> > > + @echo "*****************************************"
> > > @test
> > > endif
> > >
> > > diff --git a/src/gallium/drivers/swr/SConscript b/src/gallium/drivers/swr/SConscript
> > > index 528cfac39f6..224372eb3f5 100644
> > > --- a/src/gallium/drivers/swr/SConscript
> > > +++ b/src/gallium/drivers/swr/SConscript
> > > @@ -12,8 +12,8 @@ if not env['llvm']:
> > > env['swr'] = False
> > > Return()
> > >
> > > -if env['LLVM_VERSION'] < distutils.version.LooseVersion('4.0'):
> > > - print("warning: swr requires LLVM >= 4.0: not building swr")
> > > +if env['LLVM_VERSION'] < distutils.version.LooseVersion('5.0'):
> > > + print("warning: swr requires LLVM >= 5.0: not building swr")
> > > env['swr'] = False
> > > Return()
> > >
> > > --
> > > 2.17.1
> > >
> > > _______________________________________________
> > > mesa-dev mailing list
> > > mesa-dev at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
> >
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list