extra/mesa to 17.2.1-3

This commit is contained in:
Kevin Mihelich 2017-09-21 12:33:30 +00:00
parent 3bad221f9c
commit 22c0ba9dac
5 changed files with 42 additions and 176 deletions

View file

@ -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

View file

@ -7,7 +7,7 @@
pkgbase=mesa
pkgname=('mesa' 'libva-mesa-driver')
pkgver=17.2.0
pkgver=17.2.1
pkgrel=3
arch=('i686' 'x86_64')
makedepends=('python2-mako' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'dri3proto' 'presentproto'
@ -18,12 +18,14 @@ license=('custom')
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
LICENSE
0002-glvnd-fix-gl-dot-pc.patch
glibc_dropped_xlocale.h.diff)
sha256sums=('3123448f770eae58bc73e15480e78909defb892f10ab777e9116c9b218094943'
swr-rast-do-not-crash-on-NULL-strings-returned-by-getenv.patch
swr-rast-remove-llvm-fence-atomics-from-generated-files.patch)
sha256sums=('77385d17827cff24a3bae134342234f2efe7f7f990e778109682571dbbc9ba1e'
'SKIP'
'7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2'
'64a77944a28026b066c1682c7258d02289d257b24b6f173a9f7580c48beed966'
'6de2adc3dde36d098bfe9977f5052c13e1b2e80a913e4c83d520b2e5349ddbd0')
'2dcbd3b311b18e473000fb496a93a4a7a4ae9f9413aace209c0ea4aebbba715b'
'a747e0046eab7bb9c73444549c9c63d078b11b756d2294ba9c7ee0612caf62db')
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>"
@ -35,9 +37,9 @@ prepare() {
# non-upstreamed ones
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
# swr driver
patch -Np1 -i ../swr-rast-do-not-crash-on-NULL-strings-returned-by-getenv.patch
patch -Np1 -i ../swr-rast-remove-llvm-fence-atomics-from-generated-files.patch
autoreconf -fiv
}

View file

@ -1,143 +0,0 @@
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

View file

@ -0,0 +1,14 @@
diff --git a/src/gallium/drivers/swr/rasterizer/core/utils.h b/src/gallium/drivers/swr/rasterizer/core/utils.h
index b096d2120cb..3c849e82d3b 100644
--- a/src/gallium/drivers/swr/rasterizer/core/utils.h
+++ b/src/gallium/drivers/swr/rasterizer/core/utils.h
@@ -365,7 +365,8 @@ static INLINE std::string GetEnv(const std::string& variableName)
output.resize(valueSize - 1); // valueSize includes null, output.resize() does not
GetEnvironmentVariableA(variableName.c_str(), &output[0], valueSize);
#else
- output = getenv(variableName.c_str());
+ char *o = getenv(variableName.c_str());
+ output = o ? std::string(o) : std::string();
#endif
return output;

View file

@ -0,0 +1,19 @@
diff --git a/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py b/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py
index 025d38a..ce892a9 100644
--- a/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py
+++ b/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py
@@ -140,6 +140,14 @@ def parse_ir_builder(input_file):
ignore = False
+ # The following functions need to be ignored in openswr.
+ # API change in llvm-5.0 breaks baked autogen files
+ if (
+ (func_name == 'CreateFence' or
+ func_name == 'CreateAtomicCmpXchg' or
+ func_name == 'CreateAtomicRMW')):
+ ignore = True
+
# The following functions need to be ignored.
if (func_name == 'CreateInsertNUWNSWBinOp' or
func_name == 'CreateMaskedIntrinsic' or