diff options
Diffstat (limited to 'mesonbuild/compilers.py')
-rw-r--r-- | mesonbuild/compilers.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/mesonbuild/compilers.py b/mesonbuild/compilers.py index 0535653..8dee468 100644 --- a/mesonbuild/compilers.py +++ b/mesonbuild/compilers.py @@ -576,13 +576,23 @@ int main () {{ {1}; }}''' return RunResult(True, pe.returncode, so, se) def cross_sizeof(self, element, prefix, env, extra_args=[]): - templ = '''%s + element_exists_templ = '''#include <stdio.h> +{0} +int main(int argc, char **argv) {{ + {1}; +}} +''' + templ = '''#include <stdio.h> +%s int temparray[%d-sizeof(%s)]; ''' try: extra_args += env.cross_info.config['properties'][self.language + '_args'] except KeyError: pass + extra_args += self.get_no_optimization_args() + if not self.compiles(element_exists_templ.format(prefix, element)): + return -1 for i in range(1, 1024): code = templ % (prefix, i, element) if self.compiles(code, extra_args): |