summaryrefslogtreecommitdiff
path: root/scons
diff options
context:
space:
mode:
authorEric Engestrom <eric.engestrom@imgtec.com>2017-08-31 16:55:56 +0000
committerEric Engestrom <eric@engestrom.ch>2017-09-03 09:05:23 +0100
commit49b428470e28ae6ab22083e43fa41abf622f3b0d (patch)
tree55306089b636b316b76a0b6c3d2ddc1c96f574d3 /scons
parent8514c5d0781e4e25669a2cd3bf8a547016b299a2 (diff)
downloadmesa-49b428470e28ae6ab22083e43fa41abf622f3b0d.tar.gz
mesa-49b428470e28ae6ab22083e43fa41abf622f3b0d.tar.bz2
mesa-49b428470e28ae6ab22083e43fa41abf622f3b0d.zip
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>
Diffstat (limited to 'scons')
-rwxr-xr-xscons/gallium.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/scons/gallium.py b/scons/gallium.py
index c8e47a39db1..1e35ef434a3 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',