diff options
author | Eric Engestrom <[email protected]> | 2017-08-31 16:55:56 +0000 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2017-09-13 21:52:01 +0100 |
commit | 6e2b9fba2138c15b6cc6e8c4076161b3e66dc1b5 (patch) | |
tree | 2809658cc6a3086eaae10e300c10fa9f0bb7e4e2 /scons/gallium.py | |
parent | dcb634df92f9392340eb5d4c718c0552b4e2097e (diff) |
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 <[email protected]>
Cc: Emil Velikov <[email protected]>
Cc: Rob Herring <[email protected]>
Signed-off-by: Eric Engestrom <[email protected]>
Reviewed-by: Laurent Carlier <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
(cherry picked from commit 49b428470e28ae6ab22083e43fa41abf622f3b0d)
Diffstat (limited to 'scons/gallium.py')
-rwxr-xr-x | scons/gallium.py | 16 |
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', |