aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2018-03-07 12:51:25 +0100
committerJussi Pakkanen <jpakkane@gmail.com>2018-03-25 17:22:05 +0300
commitc4192a04fd3d46ac7a0ee81a158e7b1e3d4f06f8 (patch)
tree3c80ee3a1dcd652c83d4877f816bd2eb72521afc
parent3e48d476747d188690cc29e747570981047bfbae (diff)
downloadmeson-c4192a04fd3d46ac7a0ee81a158e7b1e3d4f06f8.zip
meson-c4192a04fd3d46ac7a0ee81a158e7b1e3d4f06f8.tar.gz
meson-c4192a04fd3d46ac7a0ee81a158e7b1e3d4f06f8.tar.bz2
Support data types larger than 128 bytes
Recent versions of systemd (starting with v238) started to check for the existence of the statx structure using the cc.sizeof() operation. The cc compiler implementation fails to detect this structure because it's size limit is 128, meaning it will fail for any type larger than 128 bytes in the following way during cross-compilation checks: meson.build:10:2: ERROR: Cross-compile check overflowed Increase the size limit for data types to 1024 bytes, which should give plenty of room for even large data structures. This is obviously not guaranteed to be an upper bound, but given the binary search algorithm implemented in the cross-compile check, raising the limit too high may significantly increase the time required for this check on smaller data types. Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r--mesonbuild/compilers/c.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index e0cccc3..56b46b4 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -416,7 +416,7 @@ class CCompiler(Compiler):
}}'''
if not self.compiles(t.format(**fargs), env, extra_args, dependencies):
return -1
- return self.cross_compute_int('sizeof(%s)' % typename, 1, 128, None, prefix, env, extra_args, dependencies)
+ return self.cross_compute_int('sizeof(%s)' % typename, 1, 1024, None, prefix, env, extra_args, dependencies)
def sizeof(self, typename, prefix, env, extra_args=None, dependencies=None):
if extra_args is None: