summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/mesa/0001-Fix-linkage-against-shared-glapi.patch26
-rw-r--r--libre/mesa/PKGBUILD30
-rw-r--r--libre/mesa/glibc_dropped_xlocale.h.diff143
3 files changed, 160 insertions, 39 deletions
diff --git a/libre/mesa/0001-Fix-linkage-against-shared-glapi.patch b/libre/mesa/0001-Fix-linkage-against-shared-glapi.patch
deleted file mode 100644
index 7f8f7164c..000000000
--- a/libre/mesa/0001-Fix-linkage-against-shared-glapi.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 1b5a187c3c31513ae39cd2a917a3234c2c5f87fc Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Wed, 12 Oct 2016 13:41:33 -0400
-Subject: [PATCH] Fix linkage against shared glapi
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
- src/gallium/targets/osmesa/Makefile.am | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/gallium/targets/osmesa/Makefile.am b/src/gallium/targets/osmesa/Makefile.am
-index 5d39486..04add87 100644
---- a/src/gallium/targets/osmesa/Makefile.am
-+++ b/src/gallium/targets/osmesa/Makefile.am
-@@ -63,7 +63,7 @@ lib@OSMESA_LIB@_la_LIBADD = \
- $(top_builddir)/src/gallium/drivers/trace/libtrace.la \
- $(top_builddir)/src/gallium/drivers/softpipe/libsoftpipe.la \
- $(top_builddir)/src/gallium/state_trackers/osmesa/libosmesa.la \
-- $(top_builddir)/src/mapi/glapi/libglapi.la \
-+ $(top_builddir)/src/mapi/shared-glapi/libglapi.la \
- $(SHARED_GLAPI_LIB) \
- $(OSMESA_LIB_DEPS) \
- $(CLOCK_LIB)
---
-2.9.3
-
diff --git a/libre/mesa/PKGBUILD b/libre/mesa/PKGBUILD
index 73c43be9a..c5b1db753 100644
--- a/libre/mesa/PKGBUILD
+++ b/libre/mesa/PKGBUILD
@@ -4,27 +4,27 @@
pkgbase=mesa
pkgname=("${pkgbase}")
-pkgver=17.1.6
-pkgrel=1.parabola1
+pkgver=17.2.0
+pkgrel=3.parabola1
arch=('i686' 'x86_64' 'armv7h')
makedepends=('python2-mako' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'dri3proto' 'presentproto'
- 'libxshmfence' 'libxxf86vm' 'libxdamage' 'libvdpau' 'libva' 'wayland' 'elfutils' 'llvm'
- 'libomxil-bellagio' 'clang' 'libglvnd' 'lm_sensors')
+ 'libxshmfence' 'libxxf86vm' 'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols'
+ 'elfutils' 'llvm' 'libomxil-bellagio' 'clang' 'libglvnd' 'lm_sensors')
makedepends_x86_64=('libclc' 'libunwind')
makedepends_i686=("${makedepends_x86_64[@]}")
-url="http://mesa3d.sourceforge.net"
+url="https://www.mesa3d.org/"
license=('custom')
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
LICENSE
drirc
- 0001-Fix-linkage-against-shared-glapi.patch
- 0002-glvnd-fix-gl-dot-pc.patch)
-sha256sums=('0686deadde1f126b20aa67e47e8c50502043eee4ecdf60d5009ffda3cebfee50'
+ 0002-glvnd-fix-gl-dot-pc.patch
+ glibc_dropped_xlocale.h.diff)
+sha256sums=('3123448f770eae58bc73e15480e78909defb892f10ab777e9116c9b218094943'
'SKIP'
'7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2'
'2cc6f40076e07a2d4769557c1aa40e5b6fbbb59c38e551c1a1997ef0d3f3c5f2'
- 'c68d1522f9bce4ce31c92aa7a688da49f13043f5bb2254795b76dea8f47130b7'
- '64a77944a28026b066c1682c7258d02289d257b24b6f173a9f7580c48beed966')
+ '64a77944a28026b066c1682c7258d02289d257b24b6f173a9f7580c48beed966'
+ '6de2adc3dde36d098bfe9977f5052c13e1b2e80a913e4c83d520b2e5349ddbd0')
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov <emil.l.velikov@gmail.com>
validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # "Andres Gomez <tanty@igalia.com>"
validpgpkeys+=('E3E8F480C52ADD73B278EE78E1ECBE07D7D70895') # Juan Antonio Suárez Romero (Igalia, S.L.) <jasuarez@igalia.com>"
@@ -34,9 +34,12 @@ prepare() {
# glvnd support patches - from Fedora
# non-upstreamed ones
- patch -Np1 -i ../0001-Fix-linkage-against-shared-glapi.patch
patch -Np1 -i ../0002-glvnd-fix-gl-dot-pc.patch
+ # glibc 2.26 dropped xlocale.h leading to corrupted video
+ # https://bugs.archlinux.org/task/55244 / https://bugs.freedesktop.org/show_bug.cgi?id=102454
+ patch -Np1 -i ../glibc_dropped_xlocale.h.diff
+
autoreconf -fiv
}
@@ -45,7 +48,7 @@ build() {
case "$CARCH" in
x86_64|i686)
- GALLIUM=r300,r600,radeonsi,nouveau,svga,swrast,virgl,swr
+ GALLIUM=r300,r600,radeonsi,nouveau,svga,swrast,virgl
DRI=i915,i965,r200,radeon,nouveau,swrast
VULKAN=intel,radeon
LIBUNWIND='--enable-libunwind'
@@ -111,6 +114,7 @@ package_mesa() {
provides=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri' 'mesa-dri' 'mesa-libgl' 'opengl-driver')
conflicts=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri' 'mesa-dri' 'mesa-libgl')
replaces=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri' 'mesa-dri' 'mesa-libgl')
+ backup=('etc/drirc')
install -m755 -d ${pkgdir}/etc
cp -v ${srcdir}/drirc ${pkgdir}/etc
@@ -130,7 +134,7 @@ package_mesa() {
if [ "$CARCH" != "armv7h" ]; then
cp -rv ${srcdir}/fakeinstall/usr/lib/libxatracker.so* ${pkgdir}/usr/lib/
- cp -rv ${srcdir}/fakeinstall/usr/lib/libswrAVX*.so* ${pkgdir}/usr/lib/
+ #cp -rv ${srcdir}/fakeinstall/usr/lib/libswrAVX*.so* ${pkgdir}/usr/lib/
fi
cp -rv ${srcdir}/fakeinstall/usr/include ${pkgdir}/usr
diff --git a/libre/mesa/glibc_dropped_xlocale.h.diff b/libre/mesa/glibc_dropped_xlocale.h.diff
new file mode 100644
index 000000000..79ca3edd6
--- /dev/null
+++ b/libre/mesa/glibc_dropped_xlocale.h.diff
@@ -0,0 +1,143 @@
+From 49b428470e28ae6ab22083e43fa41abf622f3b0d Mon Sep 17 00:00:00 2001
+From: Eric Engestrom <eric.engestrom@imgtec.com>
+Date: Thu, 31 Aug 2017 16:55:56 +0000
+Subject: util: improve compiler guard
+
+Glibc 2.26 has dropped xlocale.h, but the functions needed (strtod_l()
+and strdof_l()) can be found in stdlib.h.
+Improve the detection method to allow newer builds to still make use of
+the locale-setting.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102454
+Cc: Laurent Carlier <lordheavym@gmail.com>
+Cc: Emil Velikov <emil.l.velikov@gmail.com>
+Cc: Rob Herring <robh@kernel.org>
+Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
+Reviewed-by: Laurent Carlier <lordheavym@gmail.com>
+Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
+
+diff --git a/configure.ac b/configure.ac
+index ac64a38..fb6037e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -795,6 +795,27 @@ AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
+ AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
+ AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
+
++AC_MSG_CHECKING([whether strtod has locale support])
++AC_LINK_IFELSE([AC_LANG_SOURCE([[
++ #define _GNU_SOURCE
++ #include <stdlib.h>
++ #include <locale.h>
++ #ifdef HAVE_XLOCALE_H
++ #include <xlocale.h>
++ #endif
++ int main() {
++ locale_t loc = newlocale(LC_CTYPE_MASK, "C", NULL);
++ const char *s = "1.0";
++ char *end;
++ double d = strtod_l(s, end, loc);
++ float f = strtof_l(s, end, loc);
++ freelocale(loc);
++ return 0;
++ }]])],
++ [DEFINES="$DEFINES -DHAVE_STRTOD_L"];
++ AC_MSG_RESULT([yes]),
++ AC_MSG_RESULT([no]))
++
+ dnl Check to see if dlopen is in default libraries (like Solaris, which
+ dnl has it in libc), or if libdl is needed to get it.
+ AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
+diff --git a/scons/gallium.py b/scons/gallium.py
+index c8e47a3..1e35ef4 100755
+--- a/scons/gallium.py
++++ b/scons/gallium.py
+@@ -157,6 +157,19 @@ def check_header(env, header):
+ env = conf.Finish()
+ return have_header
+
++def check_functions(env, functions):
++ '''Check if all of the functions exist'''
++
++ conf = SCons.Script.Configure(env)
++ have_functions = True
++
++ for function in functions:
++ if not conf.CheckFunc(function):
++ have_functions = False
++
++ env = conf.Finish()
++ return have_functions
++
+ def check_prog(env, prog):
+ """Check whether this program exists."""
+
+@@ -339,6 +352,9 @@ def generate(env):
+ if check_header(env, 'xlocale.h'):
+ cppdefines += ['HAVE_XLOCALE_H']
+
++ if check_functions(env, ['strtod_l', 'strtof_l']):
++ cppdefines += ['HAVE_STRTOD_L']
++
+ if platform == 'windows':
+ cppdefines += [
+ 'WIN32',
+diff --git a/src/util/strtod.c b/src/util/strtod.c
+index ea7d395..de695d6 100644
+--- a/src/util/strtod.c
++++ b/src/util/strtod.c
+@@ -26,12 +26,12 @@
+
+ #include <stdlib.h>
+
+-#ifdef _GNU_SOURCE
++#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L)
+ #include <locale.h>
+ #ifdef HAVE_XLOCALE_H
+ #include <xlocale.h>
+-static locale_t loc;
+ #endif
++static locale_t loc;
+ #endif
+
+ #include "strtod.h"
+@@ -40,7 +40,7 @@ static locale_t loc;
+ void
+ _mesa_locale_init(void)
+ {
+-#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H)
++#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L)
+ loc = newlocale(LC_CTYPE_MASK, "C", NULL);
+ #endif
+ }
+@@ -48,7 +48,7 @@ _mesa_locale_init(void)
+ void
+ _mesa_locale_fini(void)
+ {
+-#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H)
++#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L)
+ freelocale(loc);
+ #endif
+ }
+@@ -60,7 +60,7 @@ _mesa_locale_fini(void)
+ double
+ _mesa_strtod(const char *s, char **end)
+ {
+-#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H)
++#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L)
+ return strtod_l(s, end, loc);
+ #else
+ return strtod(s, end);
+@@ -75,7 +75,7 @@ _mesa_strtod(const char *s, char **end)
+ float
+ _mesa_strtof(const char *s, char **end)
+ {
+-#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H)
++#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L)
+ return strtof_l(s, end, loc);
+ #elif defined(HAVE_STRTOF)
+ return strtof(s, end);
+--
+cgit v0.10.2
+
+