17.2.1
This commit is contained in:
parent
ec675353ea
commit
dc290cbce6
@ -1,147 +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: [PATCH 001/183] 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>
|
|
||||||
---
|
|
||||||
configure.ac | 21 +++++++++++++++++++++
|
|
||||||
scons/gallium.py | 16 ++++++++++++++++
|
|
||||||
src/util/strtod.c | 12 ++++++------
|
|
||||||
3 files changed, 43 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index ac64a38d43..fb6037eedc 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 c8e47a39db..1e35ef434a 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 ea7d395e2d..de695d64b4 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);
|
|
||||||
--
|
|
||||||
2.13.5
|
|
||||||
|
|
@ -58,8 +58,8 @@
|
|||||||
|
|
||||||
Name: mesa
|
Name: mesa
|
||||||
Summary: Mesa graphics libraries
|
Summary: Mesa graphics libraries
|
||||||
Version: 17.2.0
|
Version: 17.2.1
|
||||||
Release: 2%{?rctag:.%{rctag}}%{?dist}
|
Release: 1%{?rctag:.%{rctag}}%{?dist}
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: http://www.mesa3d.org
|
URL: http://www.mesa3d.org
|
||||||
@ -82,7 +82,6 @@ Patch10: glvnd-fix-gl-dot-pc.patch
|
|||||||
Patch11: 0001-Fix-linkage-against-shared-glapi.patch
|
Patch11: 0001-Fix-linkage-against-shared-glapi.patch
|
||||||
|
|
||||||
# backport from upstream
|
# backport from upstream
|
||||||
Patch20: 0001-util-improve-compiler-guard.patch
|
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
@ -682,6 +681,9 @@ popd
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 20 2017 Peter Robinson <pbrobinson@fedoraproject.org> 17.2.1-1
|
||||||
|
- Update to 17.2.1 GA
|
||||||
|
|
||||||
* Mon Sep 11 2017 Peter Robinson <pbrobinson@fedoraproject.org> 17.2.0-2
|
* Mon Sep 11 2017 Peter Robinson <pbrobinson@fedoraproject.org> 17.2.0-2
|
||||||
- Add upstream patch for glibc xlocale.h change (fdo bz 102454)
|
- Add upstream patch for glibc xlocale.h change (fdo bz 102454)
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (mesa-17.2.0.tar.xz) = 6ac39274fcf86a26ea5fe51aed486ba3d45b75e0d2f7cc17e1e71d4cf9a85420a832fe559a2ac7b215eda615fab99a2bd290c8388a48c52e13737e7e4ef8d4fd
|
SHA512 (mesa-17.2.1.tar.xz) = 19a7d6c2e2d439b1c73199bffd4154b42017bccc138be954a893c3b70e885f07988de84dc8aa2aff36e06295e91f0181d5b95372152f6f0f80b7afe4b3846b6a
|
||||||
|
Loading…
Reference in New Issue
Block a user