From d3f5ce595f2c317c85f2efffdc4e2979c375d6e5 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Wed, 18 Apr 2018 12:40:22 -0700 Subject: [PATCH] meson: add upstream patch PR3196 --- ...ort-data-types-larger-than-128-bytes.patch | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 packages/python/devel/meson/patches/meson-0001-Support-data-types-larger-than-128-bytes.patch diff --git a/packages/python/devel/meson/patches/meson-0001-Support-data-types-larger-than-128-bytes.patch b/packages/python/devel/meson/patches/meson-0001-Support-data-types-larger-than-128-bytes.patch new file mode 100644 index 0000000000..39962d7c01 --- /dev/null +++ b/packages/python/devel/meson/patches/meson-0001-Support-data-types-larger-than-128-bytes.patch @@ -0,0 +1,38 @@ +From c4192a04fd3d46ac7a0ee81a158e7b1e3d4f06f8 Mon Sep 17 00:00:00 2001 +From: Thierry Reding +Date: Wed, 7 Mar 2018 12:51:25 +0100 +Subject: [PATCH] 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 +--- + mesonbuild/compilers/c.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py +index e0cccc3cb..56b46b4fb 100644 +--- a/mesonbuild/compilers/c.py ++++ b/mesonbuild/compilers/c.py +@@ -416,7 +416,7 @@ def cross_sizeof(self, typename, prefix, env, extra_args=None, dependencies=None + }}''' + 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: