changeset 5499:be0a7ce498e6

Update mesa to version 20.0.8 (bug #58689). * src/mesa.mk: Update version and checksum. Add build-meson to dependecies. Update build rule to use meson and ninja as the build tools. * src/mesa-1-meson.patch: Add new patch. * src/mesa-1-fixes.patch: Remove old patch for the scons rule that is no longer needed. * dist-files.mk: Update file list. * src/build-mako.mk: Depend on and use python3. * src/build-markupsafe.mk: Depend on and use python3.
author Markus Mützel <markus.muetzel@gmx.de>
date Sun, 05 Jul 2020 20:58:57 +0200
parents 4edf49596bf0
children 512e69a36d09
files dist-files.mk src/build-mako.mk src/build-markupsafe.mk src/mesa-1-fixes.patch src/mesa-1-meson.patch src/mesa.mk
diffstat 6 files changed, 66 insertions(+), 104 deletions(-) [+]
line wrap: on
line diff
--- a/dist-files.mk	Thu Jul 02 17:53:59 2020 +0200
+++ b/dist-files.mk	Sun Jul 05 20:58:57 2020 +0200
@@ -326,7 +326,7 @@
   lzo.mk \
   matio.mk \
   mdbtools.mk \
-  mesa-1-fixes.patch \
+  mesa-1-meson.patch \
   mesa-proto.mk \
   mesa.mk \
   mingw-blas-1-xerbla.patch \
--- a/src/build-mako.mk	Thu Jul 02 17:53:59 2020 +0200
+++ b/src/build-mako.mk	Sun Jul 05 20:58:57 2020 +0200
@@ -8,7 +8,7 @@
 $(PKG)_SUBDIR   := Mako-$($(PKG)_VERSION)
 $(PKG)_FILE     := Mako-$($(PKG)_VERSION).tar.gz
 $(PKG)_URL      := https://pypi.python.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/$($(PKG)_FILE)
-$(PKG)_DEPS     := build-python build-markupsafe build-setuptools
+$(PKG)_DEPS     := build-python3 build-markupsafe build-setuptools
 
 define $(PKG)_UPDATE
     echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2;
@@ -16,5 +16,5 @@
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)' && python2 setup.py install --prefix='$(BUILD_TOOLS_PREFIX)'
+    cd '$(1)' && $(PYTHON3) setup.py install --prefix='$(BUILD_TOOLS_PREFIX)'
 endef
--- a/src/build-markupsafe.mk	Thu Jul 02 17:53:59 2020 +0200
+++ b/src/build-markupsafe.mk	Sun Jul 05 20:58:57 2020 +0200
@@ -8,7 +8,7 @@
 $(PKG)_SUBDIR   := MarkupSafe-$($(PKG)_VERSION)
 $(PKG)_FILE     := MarkupSafe-$($(PKG)_VERSION).tar.gz
 $(PKG)_URL      := https://pypi.python.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/$($(PKG)_FILE)
-$(PKG)_DEPS     := build-python build-setuptools
+$(PKG)_DEPS     := build-python3 build-setuptools
 
 define $(PKG)_UPDATE
     echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2;
@@ -16,6 +16,6 @@
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)' && python2 setup.py install --prefix='$(BUILD_TOOLS_PREFIX)'
+    cd '$(1)' && $(PYTHON3) setup.py install --prefix='$(BUILD_TOOLS_PREFIX)'
 endef
 
--- a/src/mesa-1-fixes.patch	Thu Jul 02 17:53:59 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-diff -uNr a/scons/gallium.py b/scons/gallium.py
---- a/scons/gallium.py	2017-09-17 19:03:22.000000000 -0400
-+++ b/scons/gallium.py	2017-10-04 19:24:29.499373623 -0400
-@@ -580,9 +580,6 @@
-                 '-Wl,--dynamicbase', # ASLR
-             ]
-             # Avoid depending on gcc runtime DLLs
--            linkflags += ['-static-libgcc']
--            if 'w64' in env['CC'].split('-'):
--                linkflags += ['-static-libstdc++']
-             # Handle the @xx symbol munging of DLL exports
-             shlinkflags += ['-Wl,--enable-stdcall-fixup']
-             #shlinkflags += ['-Wl,--kill-at']
-diff -uNr a/scons/llvm.py b/scons/llvm.py
---- a/scons/llvm.py	2018-12-27 17:02:01.000000000 +0100
-+++ b/scons/llvm.py	2019-01-21 18:47:28.456846140 +0100
-@@ -122,10 +122,7 @@
-                 'LLVMIRReader', 'LLVMAsmParser',
-                 'LLVMDemangle', 'LLVMGlobalISel', 'LLVMDebugInfoMSF',
-                 'LLVMBinaryFormat',
-+                'version', 'uuid', 'ole32', 'oleaut32', 'z',
-             ])
--            if env['platform'] == 'windows' and env['crosscompile']:
--                # LLVM 5.0 requires MinGW w/ pthreads due to use of std::thread and friends.
--                assert env['gcc']
--                env['CXX'] = env['CXX'] + '-posix'
-         elif llvm_version >= distutils.version.LooseVersion('4.0'):
-             env.Prepend(LIBS = [
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/mesa-1-meson.patch	Sun Jul 05 20:58:57 2020 +0200
@@ -0,0 +1,15 @@
+Don't link to Win32 library libstdc++
+
+diff --git "a/meson.build" "b/meson.build"
+index eaaca7f..9b9d2d3 100644
+--- "a/meson.build"	
++++ "b/meson.build"
+@@ -1030,8 +1030,7 @@ if host_machine.system() == 'windows'
+     add_project_link_arguments(
+       '-Wl,--nxcompat',
+       '-Wl,--dynamicbase',
+       '-static-libgcc',
+-      '-static-libstdc++',
+       language : ['c', 'cpp'],
+     )
+   endif
--- a/src/mesa.mk	Thu Jul 02 17:53:59 2020 +0200
+++ b/src/mesa.mk	Sun Jul 05 20:58:57 2020 +0200
@@ -2,85 +2,61 @@
 # See index.html for further information.
 
 PKG             := mesa
-$(PKG)_VERSION  := 19.0.8
-$(PKG)_CHECKSUM := 5fd340a6304f7501014e1bd7291e4cfa7a6efcdb
+$(PKG)_VERSION  := 20.0.8
+$(PKG)_CHECKSUM := 54be52b058b931212b5994e8974c417b4b6c3157
 $(PKG)_SUBDIR   := mesa-$($(PKG)_VERSION)
 $(PKG)_FILE     := mesa-$($(PKG)_VERSION).tar.xz
 $(PKG)_URL      := ftp://ftp.freedesktop.org/pub/mesa/$($(PKG)_FILE)
-$(PKG)_DEPS     := build-mako expat zlib llvm s2tc
-
-$(PKG)_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)
-ifeq ($(MXE_WINDOWS_BUILD),yes)
-  $(PKG)_DEPS += build-scons
-  ifeq ($(USE_SYSTEM_OPENGL),no)
-    $(PKG)_SCONS_OPENGL_OPTIONS := libgl-gdi
-  endif
-else
-  ifeq ($(USE_SYSTEM_OPENGL),yes)
-    $(PKG)_CONFIGURE_OPENGL_OPTIONS := \
-      --disable-opengl --disable-egl --disable-gles1 --disable-gles2 \
-      --disable-dri --disable-glx \
-      --with-gallium-drivers="" --with-dri-drivers="" \
-      --with-platforms=""
-  else
-    $(PKG)_CONFIGURE_OPENGL_OPTIONS := \
-      --enable-glx="gallium-xlib" --with-gallium-drivers="swrast" \
-      --disable-dri --disable-gbm --disable-egl
-    ifeq ($(USE_SYSTEM_X11_LIBS),no)
-      $(PKG)_DEPS += dri2proto glproto libdrm libxshmfence x11 xdamage xext xfixes
-    else
-      $(PKG)_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH):$(BUILD_PKG_CONFIG_PATH)
-    endif
-  endif
-  $(PKG)_CONFIGURE_ENV += \
-      PKG_CONFIG="$(MXE_PKG_CONFIG)" \
-      PKG_CONFIG_LIBDIR=$($(PKG)_PKG_CONFIG_PATH)
-endif
+$(PKG)_DEPS     := build-mako build-meson expat zlib llvm s2tc
 
 define $(PKG)_UPDATE
     echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2;
     echo $($(PKG)_VERSION)
 endef
 
-ifeq ($(MXE_WINDOWS_BUILD),yes)
-  ifeq ($(ENABLE_WINDOWS_64),yes)
-    $(PKG)_MACHINE := x86_64
-  else
-    $(PKG)_MACHINE := x86
-  endif
-  define $(PKG)_BUILD
-    cd '$(1)' && LLVM=$(HOST_PREFIX) python2 $(shell which scons) platform=windows toolchain=crossmingw machine=$($(PKG)_MACHINE) verbose=1 build=release $($(PKG)_SCONS_OPENGL_OPTIONS)
+# FIXME: Should this be defined in the top-level Makefile?
+ifeq ($(MXE_NATIVE_BUILD),no)
+  MESON_TOOLCHAIN_FILE := $(HOST_PREFIX)/share/meson/cross/mxe-conf.ini
+else
+  MESON_TOOLCHAIN_FILE := $(HOST_PREFIX)/share/meson/native/mxe-conf.ini
+endif
 
-    ## Do the scons config files have useful install targets?
-    $(INSTALL) -d '$(3)$(HOST_INCDIR)/GL';
-    for f in '$(1)/include/GL/*.h' ; do \
-      $(INSTALL) -m 644 $$f '$(3)$(HOST_INCDIR)/GL'; \
-    done
-    $(INSTALL) -d '$(3)$(HOST_INCDIR)/KHR';
-    for f in '$(1)/include/KHR/*.h' ; do \
-      $(INSTALL) -m 644 $$f '$(3)$(HOST_INCDIR)/KHR'; \
-    done
+ifeq ($(MXE_WINDOWS_BUILD),yes)
+  $(PKG)_MESON_TOOLCHAIN_FILE := --cross-file '$(MESON_TOOLCHAIN_FILE)'
+else
+  ifeq ($(USE_SYSTEM_X11_LIBS),no)
+    $(PKG)_DEPS += dri2proto glproto libdrm libxshmfence x11 xdamage xext xfixes
+  else
+    $(PKG)_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH):$(BUILD_PKG_CONFIG_PATH)
+  endif
+  $(PKG)_MESON_TOOLCHAIN_FILE := --native-file '$(MESON_TOOLCHAIN_FILE)'
+  $(PKG)_MESON_ENV += \
+      PKG_CONFIG="$(MXE_PKG_CONFIG)" \
+      PKG_CONFIG_LIBDIR=$($(PKG)_PKG_CONFIG_PATH)
 
-    if [ -f '$(1)/build/windows-$($(PKG)_MACHINE)/gallium/targets/libgl-gdi/opengl32.dll' ]; then \
-      $(INSTALL) -d '$(3)$(HOST_BINDIR)'; \
-      $(INSTALL) -m 755 '$(1)/build/windows-$($(PKG)_MACHINE)/gallium/targets/libgl-gdi/opengl32.dll' '$(3)$(HOST_BINDIR)/opengl32.dll'; \
-    fi
-  endef
-else
-  define $(PKG)_BUILD
-    mkdir '$(1)/.build'
-    cd '$(1)' && autoreconf -fi  -I m4
-    cd '$(1)/.build' && $($(PKG)_CONFIGURE_ENV) '$(1)/configure' \
-        $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \
-        $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
-        --prefix='$(HOST_PREFIX)' \
-        $($(PKG)_CONFIGURE_OPENGL_OPTIONS) \
-        --enable-autotools \
-        --disable-osmesa \
-        --disable-gbm \
-        --disable-xvmc \
-        && $(CONFIGURE_POST_HOOK)
+  $(PKG)_X11_FLAGS := -Dplatforms='x11' \
+      -Dglx=gallium-xlib \
+      -Ddri-drivers=''
+endif
 
-    $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)'
-  endef
-endif
+define $(PKG)_BUILD
+  cd '$(1)' && $($(PKG)_MESON_ENV) \
+      meson $(1)/.build \
+      $($(PKG)_MESON_TOOLCHAIN_FILE) \
+      -Dprefix='$(HOST_PREFIX)' \
+      $($(PKG)_X11_FLAGS) \
+      -Dgallium-drivers=swrast \
+      -Dvulkan-drivers='' \
+      -Degl=false \
+      -Dgbm=false  \
+      -Dshared-llvm=true
+
+  cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) install
+  
+  # opengl32.dll.a shadows libopengl32.a from mingw. They export slightly
+  # different symbols which causes problems for some packages. So don't install
+  # it for cross-builds.
+  if [ x$(MXE_NATIVE_BUILD) == xno ]; then \
+    rm -f $(3)$(HOST_LIBDIR)/opengl32.dll.a; \
+  fi
+endef