about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2014-03-17 22:04:03 +0100
committerVladimír Čunát <vcunat@gmail.com>2014-03-21 10:34:19 +0100
commitad8adf12a40ababfce6a0aba38be3dfd1b60a152 (patch)
tree9cee1c748551dff84849734bb86b5b48ef2550ba /pkgs
parenta245aeaef1a311c3a1b84d2259a55ee0b19b1480 (diff)
downloadnixlib-ad8adf12a40ababfce6a0aba38be3dfd1b60a152.tar
nixlib-ad8adf12a40ababfce6a0aba38be3dfd1b60a152.tar.gz
nixlib-ad8adf12a40ababfce6a0aba38be3dfd1b60a152.tar.bz2
nixlib-ad8adf12a40ababfce6a0aba38be3dfd1b60a152.tar.lz
nixlib-ad8adf12a40ababfce6a0aba38be3dfd1b60a152.tar.xz
nixlib-ad8adf12a40ababfce6a0aba38be3dfd1b60a152.tar.zst
nixlib-ad8adf12a40ababfce6a0aba38be3dfd1b60a152.zip
mesa: major update to 10.0.4, seems to work finally
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/libraries/mesa/default.nix16
-rw-r--r--pkgs/development/libraries/mesa/dricore-gallium.patch216
-rw-r--r--pkgs/development/libraries/mesa/rtti.patch72
-rw-r--r--pkgs/development/libraries/mesa/static-gallium.patch9
-rw-r--r--pkgs/development/libraries/mesa/werror-wundef.patch12
-rw-r--r--pkgs/top-level/all-packages.nix2
6 files changed, 83 insertions, 244 deletions
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 68333892fd4c..1018a0e31f33 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -23,8 +23,8 @@ else
 */
 
 let
-  version = "9.2.5";
-  # this is the default search path for DRI drivers (note: X server no longer introduces an overriding env var)
+  version = "10.0.4";
+  # this is the default search path for DRI drivers
   driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
 in
 with { inherit (stdenv.lib) optional optionals optionalString; };
@@ -34,21 +34,23 @@ stdenv.mkDerivation {
 
   src =  fetchurl {
     url = "ftp://ftp.freedesktop.org/pub/mesa/${version}/MesaLib-${version}.tar.bz2";
-    sha256 = "1w3bxclgwl2hwyxk3za7dbdakb8jsya7afck35cz0v8pxppvjsml";
+    sha256 = "0h2sq8h0l7415vsqfkb7mn1rxm62m2anpi9swlca69fbpr9bavpz";
   };
 
   prePatch = "patchShebangs .";
 
   patches = [
     ./static-gallium.patch
-    ./dricore-gallium.patch
-    ./werror-wundef.patch
+   # TODO: revive ./dricore-gallium.patch when it gets ported (from Ubuntu),
+   #  as it saved ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog
   ];
 
   # Change the search path for EGL drivers from $drivers/* to driverLink
   postPatch = ''
     sed '/D_EGL_DRIVER_SEARCH_DIR=/s,EGL_DRIVER_INSTALL_DIR,${driverLink}/lib/egl,' \
       -i src/egl/main/Makefile.am
+  '' + /* work around RTTI LLVM problems */ ''
+    patch -R -p1 < ${./rtti.patch}
   '';
 
   outputs = ["out" "drivers" "osmesa"];
@@ -70,7 +72,7 @@ stdenv.mkDerivation {
 
     "--with-dri-drivers=i965,r200,radeon"
     "--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast,radeonsi"
-    "--with-egl-platforms=x11,wayland,drm" "--enable-gbm" "--enable-shared-glapi"
+    "--with-egl-platforms=x11,wayland,drm" "--enable-gbm"
   ]
     ++ optional enableTextureFloats "--enable-texture-float"
     ++ optionals enableExtraFeatures [
@@ -94,7 +96,7 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
   #doCheck = true; # https://bugs.freedesktop.org/show_bug.cgi?id=67672,
-    # also, 10.* links bad due to some RTTI problem
+    #tests for 10.* fail to link due to some RTTI problem
 
   # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM;
   #   also move libOSMesa to $osmesa, as it's relatively big
diff --git a/pkgs/development/libraries/mesa/dricore-gallium.patch b/pkgs/development/libraries/mesa/dricore-gallium.patch
deleted file mode 100644
index 9a8b6768277b..000000000000
--- a/pkgs/development/libraries/mesa/dricore-gallium.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-commit 5208f187c7dade2c33385a56c1a5f1c3cedc8377 (HEAD, nix-patches)
-Author: Vladimír Čunát <vcunat@gmail.com>
-Date:   Mon May 13 11:34:59 2013 +0200
-
-    118-dricore-gallium.patch
-
-diff --git a/configure.ac b/configure.ac
-index be89843..08f6761 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -928,6 +928,8 @@ AC_SUBST([GLESv2_LIB_DEPS])
- AC_SUBST([GLESv2_PC_LIB_PRIV])
- 
- DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la"
-+MESAGALLIUM_LIBS="${DRI_LIB_DEPS}"
-+AC_SUBST([MESAGALLIUM_LIBS], ${MESAGALLIUM_LIBS})
- 
- AC_SUBST([HAVE_XF86VIDMODE])
- 
-diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am
-index 3cdec83..53ff69b 100644
---- a/src/gallium/auxiliary/Makefile.am
-+++ b/src/gallium/auxiliary/Makefile.am
-@@ -34,14 +34,14 @@ if LLVM_NEEDS_FNORTTI
- 
- AM_CXXFLAGS += -fno-rtti
- 
--libgallium_la_LIBADD = $(LLVM_LIBS)
--
- endif
- 
- libgallium_la_SOURCES += \
- 	$(GALLIVM_SOURCES) \
- 	$(GALLIVM_CPP_SOURCES)
- 
-+libgallium_la_LIBADD = ../../mesa/libdricore/libmesagallium.la $(LLVM_LIBS) $(GALLIUM_DRI_LIB_DEPS)
-+
- endif
- 
- indices/u_indices_gen.c: $(srcdir)/indices/u_indices_gen.py
-diff --git a/src/gallium/targets/dri-i915/Makefile.am b/src/gallium/targets/dri-i915/Makefile.am
-index f4f9030..e9b9462 100644
---- a/src/gallium/targets/dri-i915/Makefile.am
-+++ b/src/gallium/targets/dri-i915/Makefile.am
-@@ -49,7 +49,7 @@ i915_dri_la_SOURCES = \
- i915_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- i915_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
- 	$(top_builddir)/src/gallium/winsys/i915/drm/libi915drm.la \
-diff --git a/src/gallium/targets/dri-nouveau/Makefile.am b/src/gallium/targets/dri-nouveau/Makefile.am
-index 69ccf32..fef4c63 100644
---- a/src/gallium/targets/dri-nouveau/Makefile.am
-+++ b/src/gallium/targets/dri-nouveau/Makefile.am
-@@ -48,7 +48,7 @@ nouveau_dri_la_SOURCES = \
- nouveau_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- nouveau_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
- 	$(top_builddir)/src/gallium/winsys/nouveau/drm/libnouveaudrm.la \
-diff --git a/src/gallium/targets/dri-r300/Makefile.am b/src/gallium/targets/dri-r300/Makefile.am
-index 8c0215d..6beb536 100644
---- a/src/gallium/targets/dri-r300/Makefile.am
-+++ b/src/gallium/targets/dri-r300/Makefile.am
-@@ -49,7 +49,7 @@ r300_dri_la_SOURCES = \
- r300_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- r300_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
- 	$(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la \
-diff --git a/src/gallium/targets/dri-r600/Makefile.am b/src/gallium/targets/dri-r600/Makefile.am
-index 2b3524b..d40fb89 100644
---- a/src/gallium/targets/dri-r600/Makefile.am
-+++ b/src/gallium/targets/dri-r600/Makefile.am
-@@ -48,7 +48,7 @@ r600_dri_la_SOURCES = \
- r600_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- r600_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/drivers/r600/libr600.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
-diff --git a/src/gallium/targets/dri-radeonsi/Makefile.am b/src/gallium/targets/dri-radeonsi/Makefile.am
-index f7d87a6..87ab2aa 100644
---- a/src/gallium/targets/dri-radeonsi/Makefile.am
-+++ b/src/gallium/targets/dri-radeonsi/Makefile.am
-@@ -49,7 +49,7 @@ radeonsi_dri_la_SOURCES = \
- radeonsi_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- radeonsi_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
-diff --git a/src/gallium/targets/dri-swrast/Makefile.am b/src/gallium/targets/dri-swrast/Makefile.am
-index 1104379..72d2401 100644
---- a/src/gallium/targets/dri-swrast/Makefile.am
-+++ b/src/gallium/targets/dri-swrast/Makefile.am
-@@ -49,7 +49,7 @@ swrast_dri_la_SOURCES = \
- swrast_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- swrast_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/sw/libdrisw.la \
- 	$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la \
-diff --git a/src/gallium/targets/dri-vmwgfx/Makefile.am b/src/gallium/targets/dri-vmwgfx/Makefile.am
-index ca7df65..4384976 100644
---- a/src/gallium/targets/dri-vmwgfx/Makefile.am
-+++ b/src/gallium/targets/dri-vmwgfx/Makefile.am
-@@ -48,7 +48,7 @@ vmwgfx_dri_la_SOURCES = \
- vmwgfx_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- vmwgfx_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
- 	$(top_builddir)/src/gallium/winsys/svga/drm/libsvgadrm.la \
-diff --git a/src/gallium/targets/egl-static/Makefile.am b/src/gallium/targets/egl-static/Makefile.am
-index 5c40ae8..6922ab2 100644
---- a/src/gallium/targets/egl-static/Makefile.am
-+++ b/src/gallium/targets/egl-static/Makefile.am
-@@ -104,7 +104,7 @@ AM_CPPFLAGS += \
- 	$(API_DEFINES)
- 
- egl_gallium_la_LIBADD += \
--	$(top_builddir)/src/mesa/libmesagallium.la
-+	@MESAGALLIUM_LIBS@
- # make st/mesa built-in when there is a single glapi provider
- if HAVE_SHARED_GLAPI
- egl_gallium_la_LIBADD += \
-diff --git a/src/mesa/Makefile.am b/src/mesa/Makefile.am
-index 41483dd..0045a673 100644
---- a/src/mesa/Makefile.am
-+++ b/src/mesa/Makefile.am
-@@ -75,9 +75,6 @@ noinst_LTLIBRARIES += libmesa.la
- else
- check_LTLIBRARIES = libmesa.la
- endif
--if HAVE_GALLIUM
--noinst_LTLIBRARIES += libmesagallium.la
--endif
- 
- SRCDIR = $(top_srcdir)/src/mesa/
- BUILDDIR = $(top_builddir)/src/mesa/
-@@ -119,15 +116,6 @@ libmesa_la_LIBADD = \
-         $()
- libmesa_la_LDFLAGS =
- 
--libmesagallium_la_SOURCES = \
--	$(MESA_GALLIUM_FILES) \
--        $(MESA_ASM_FILES_FOR_ARCH)
--
--libmesagallium_la_LIBADD = \
--        $(top_builddir)/src/glsl/libglsl.la \
--        $(top_builddir)/src/mesa/program/libprogram.la \
--        $()
--
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = gl.pc
- 
-diff --git a/src/mesa/libdricore/Makefile.am b/src/mesa/libdricore/Makefile.am
-index 753548e..8761418 100644
---- a/src/mesa/libdricore/Makefile.am
-+++ b/src/mesa/libdricore/Makefile.am
-@@ -42,6 +42,7 @@ libdricore@VERSION@_la_SOURCES = \
- libdricore@VERSION@_la_LDFLAGS = -version-number 1:0
- libdricore@VERSION@_la_LIBADD = \
-         ../program/libdricore_program.la \
-+        $(top_builddir)/src/mapi/shared-glapi/libglapi.la
-         $()
- 
- if HAVE_X86_ASM
-@@ -65,8 +66,10 @@ AM_CPPFLAGS += \
-         -I$(top_srcdir)/src/mesa/sparc
- endif
- 
-+lib_LTLIBRARIES =
-+
- if HAVE_DRI
--lib_LTLIBRARIES = libdricore@VERSION@.la
-+lib_LTLIBRARIES += libdricore@VERSION@.la
- 
- # Provide compatibility with scripts for the old Mesa build system for
- # a while by putting a link to the driver into /lib of the build tree.
-@@ -76,6 +79,17 @@ all-local: libdricore@VERSION@.la
- 	ln -sf libdricore@VERSION@.so.1 $(top_builddir)/$(LIB_DIR)/libdricore@VERSION@.so
- endif
- 
-+libmesagallium_la_SOURCES = \
-+	$(STATETRACKER_FILES)
-+libmesagallium_la_CFLAGS = @LLVM_CFLAGS@
-+libmesagallium_la_CXXFLAGS = @LLVM_CXXFLAGS@
-+libmesagallium_la_LIBADD = libdricore@VERSION@.la $(LLVM_LIBS)
-+
-+if HAVE_GALLIUM
-+noinst_LTLIBRARIES = libmesagallium.la
-+endif
-+
-+
- CLEANFILES = \
- 	$(top_builddir)/$(LIB_DIR)/libdricore@VERSION@.so.1 \
- 	$(top_builddir)/$(LIB_DIR)/libdricore@VERSION@.so
diff --git a/pkgs/development/libraries/mesa/rtti.patch b/pkgs/development/libraries/mesa/rtti.patch
new file mode 100644
index 000000000000..6b123139013d
--- /dev/null
+++ b/pkgs/development/libraries/mesa/rtti.patch
@@ -0,0 +1,72 @@
+http://lists.freedesktop.org/archives/mesa-dev/2013-October/046311.html
+
+* As discussed on the mailing list,
+  forced no-rtti breaks C++ public
+  API's such as the Haiku C++ libGL.so
+* -fno-rtti *can* be still set however
+  instead of blindly forcing -fno-rtti,
+  we can rely on the llvm-config
+  --cppflags output.
+  If the system llvm is built without
+  rtti (default), the no-rtti flag will be
+  present in llvm-config --cppflags
+  (which we pick up on)
+  If llvm is built with rtti
+  (REQUIRES_RTTI=1), then -fno-rtti is
+  removed from llvm-config --cppflags.
+* We could selectively add / remove rtti
+  from various components, however mixing
+  rtti and non-rtti code is tricky and
+  could introduce bugs.
+* This needs impact tested.
+---
+ configure.ac                      | 1 -
+ scons/llvm.py                     | 3 ---
+ src/gallium/auxiliary/Makefile.am | 6 ------
+ 3 files changed, 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0d082d2..3335575 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1943,7 +1943,6 @@ AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
+ AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
+ AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
+ AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
+-AM_CONDITIONAL(LLVM_NEEDS_FNORTTI, test $LLVM_VERSION_INT -ge 302)
+ 
+ AC_SUBST([ELF_LIB])
+ 
+diff --git a/scons/llvm.py b/scons/llvm.py
+index 7cd609c..c1c3736 100644
+--- a/scons/llvm.py
++++ b/scons/llvm.py
+@@ -195,9 +195,6 @@ def generate(env):
+             if llvm_version >= distutils.version.LooseVersion('3.1'):
+                 components.append('mcjit')
+ 
+-            if llvm_version >= distutils.version.LooseVersion('3.2'):
+-                env.Append(CXXFLAGS = ('-fno-rtti',))
+-
+             env.ParseConfig('llvm-config --libs ' + ' '.join(components))
+             env.ParseConfig('llvm-config --ldflags')
+         except OSError:
+diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am
+index 670e124..2d2d8d4 100644
+--- a/src/gallium/auxiliary/Makefile.am
++++ b/src/gallium/auxiliary/Makefile.am
+@@ -25,12 +25,6 @@ AM_CXXFLAGS += \
+ 	$(GALLIUM_CFLAGS) \
+ 	$(LLVM_CXXFLAGS)
+ 
+-if LLVM_NEEDS_FNORTTI
+-
+-AM_CXXFLAGS += -fno-rtti
+-
+-endif
+-
+ libgallium_la_SOURCES += \
+ 	$(GALLIVM_SOURCES) \
+ 	$(GALLIVM_CPP_SOURCES)
+-- 
+1.8.4
diff --git a/pkgs/development/libraries/mesa/static-gallium.patch b/pkgs/development/libraries/mesa/static-gallium.patch
index 755682d9f1e8..bb3f60eaf88a 100644
--- a/pkgs/development/libraries/mesa/static-gallium.patch
+++ b/pkgs/development/libraries/mesa/static-gallium.patch
@@ -1,11 +1,4 @@
-commit 2c910b6f186616cac8134e2a2cbe239c8351ed99
-Author: Vladimír Čunát <vcunat@gmail.com>
-Date:   Mon May 13 11:34:34 2013 +0200
-
-    117-static-gallium.patch
-    
-    Conflicts (moving of VISIBILITY_ confused the merge):
-    	src/gallium/auxiliary/Makefile.am
+117-static-gallium.patch from Ubuntu Trusty
 
 diff --git a/configure.ac b/configure.ac
 index b9fcb0b..be89843 100644
diff --git a/pkgs/development/libraries/mesa/werror-wundef.patch b/pkgs/development/libraries/mesa/werror-wundef.patch
deleted file mode 100644
index 4663f68bd7d3..000000000000
--- a/pkgs/development/libraries/mesa/werror-wundef.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -rupN Mesa-9.2.0-orig/include/GL/gl.h Mesa-9.2.0/include/GL/gl.h
---- Mesa-9.2.0-orig/include/GL/gl.h	2013-08-14 03:34:42.000000000 +0200
-+++ Mesa-9.2.0/include/GL/gl.h	2013-09-24 19:34:58.319140812 +0200
-@@ -2088,7 +2088,7 @@ typedef void (APIENTRYP PFNGLMULTITEXCOO
- 
- 
- 
--#if GL_ARB_shader_objects
-+#if defined(GL_ARB_shaders_objects) && GL_ARB_shader_objects
- 
- #ifndef GL_MESA_shader_debug
- #define GL_MESA_shader_debug 1
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f0ba9b3c29ed..10faa642844e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5252,7 +5252,7 @@ let
 
   mesaSupported = lib.elem system lib.platforms.mesaPlatforms;
 
-  mesa_original = callPackage ../development/libraries/mesa { llvm = llvm_33; };
+  mesa_original = callPackage ../development/libraries/mesa { };
   mesa_noglu = if stdenv.isDarwin
     then darwinX11AndOpenGL // { driverLink = mesa_noglu; }
     else mesa_original;