summaryrefslogtreecommitdiffstats
path: root/package/samba4/samba4-0007-build-make-wafsamba-CHECK_SIZEOF-cross-compile-friendl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/samba4/samba4-0007-build-make-wafsamba-CHECK_SIZEOF-cross-compile-friendl.patch')
-rw-r--r--package/samba4/samba4-0007-build-make-wafsamba-CHECK_SIZEOF-cross-compile-friendl.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/package/samba4/samba4-0007-build-make-wafsamba-CHECK_SIZEOF-cross-compile-friendl.patch b/package/samba4/samba4-0007-build-make-wafsamba-CHECK_SIZEOF-cross-compile-friendl.patch
new file mode 100644
index 0000000000..72176cbe16
--- /dev/null
+++ b/package/samba4/samba4-0007-build-make-wafsamba-CHECK_SIZEOF-cross-compile-friendl.patch
@@ -0,0 +1,68 @@
+From fd3eb1e9f712e4c96c0b55d4203745afb2bcc8c2 Mon Sep 17 00:00:00 2001
+From: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Date: Wed, 9 Apr 2014 10:21:59 -0300
+Subject: [PATCH 3/5] build: make wafsamba CHECK_SIZEOF cross-compile friendly
+
+Use the same trick as commit 0d9bb86293c9d39298786df095c73a6251b08b7e
+We do the same array trick iteratively starting from 1 (byte) by powers
+of 2 up to 32.
+
+The new 'critical' option is used to make the invocation die or not
+according to each test.
+The default is True since normally it's expected to find a proper
+result and should error out if not.
+
+Status: Upstream.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ buildtools/wafsamba/samba_autoconf.py | 28 ++++++++++++++++------------
+ 1 file changed, 16 insertions(+), 12 deletions(-)
+
+diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py
+index 59d9e79..f60ce9d 100644
+--- a/buildtools/wafsamba/samba_autoconf.py
++++ b/buildtools/wafsamba/samba_autoconf.py
+@@ -304,23 +304,27 @@ def CHECK_FUNCS(conf, list, link=True, lib=None, headers=None):
+
+
+ @conf
+-def CHECK_SIZEOF(conf, vars, headers=None, define=None):
++def CHECK_SIZEOF(conf, vars, headers=None, define=None, critical=True):
+ '''check the size of a type'''
+- ret = True
+ for v in TO_LIST(vars):
+ v_define = define
++ ret = False
+ if v_define is None:
+ v_define = 'SIZEOF_%s' % v.upper().replace(' ', '_')
+- if not CHECK_CODE(conf,
+- 'printf("%%u", (unsigned)sizeof(%s))' % v,
+- define=v_define,
+- execute=True,
+- define_ret=True,
+- quote=False,
+- headers=headers,
+- local_include=False,
+- msg="Checking size of %s" % v):
+- ret = False
++ for size in list((1, 2, 4, 8, 16, 32)):
++ if CHECK_CODE(conf,
++ 'static int test_array[1 - 2 * !(((long int)(sizeof(%s))) <= %d)];' % (v, size),
++ define=v_define,
++ quote=False,
++ headers=headers,
++ local_include=False,
++ msg="Checking if size of %s == %d" % (v, size)):
++ conf.DEFINE(v_define, size)
++ ret = True
++ break
++ if not ret and critical:
++ Logs.error("Couldn't determine size of '%s'" % v)
++ sys.exit(1)
+ return ret
+
+ @conf
+--
+1.8.3.2
+
OpenPOWER on IntegriCloud