mesonbuild/meson
View on GitHubValueError: invalid literal for int() with base 10: '' when sanitizer flags break test binary
Open
#14,452 opened on Apr 5, 2025
exceptiongood first issue
Description
Describe the bug
I was trying to work around #13211 and triggered a ValueError while experimenting with various sanitizer flags and environment variables:
Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/mesonbuild/mesonmain.py", line 193, in run
return options.run_func(options)
~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/msetup.py", line 365, in run
app.generate()
~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/mesonbuild/msetup.py", line 188, in generate
return self._generate(env, capture, vslite_ctx)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/msetup.py", line 227, in _generate
intr.run()
~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreter/interpreter.py", line 3083, in run
super().run()
~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 169, in run
self.evaluate_codeblock(self.ast, start=1)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 194, in evaluate_codeblock
raise e
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 186, in evaluate_codeblock
self.evaluate_statement(cur)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 240, in evaluate_statement
self.evaluate_foreach(cur)
~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 478, in evaluate_foreach
self.evaluate_codeblock(node.block)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 194, in evaluate_codeblock
raise e
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 186, in evaluate_codeblock
self.evaluate_statement(cur)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 204, in evaluate_statement
self.assignment(cur)
~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 641, in assignment
value = self.evaluate_statement(node.value)
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 206, in evaluate_statement
return self.method_call(cur)
~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 556, in method_call
res = obj.method_call(method_name, args, kwargs)
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/baseobjects.py", line 81, in method_call
return method(args, kwargs)
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/decorators.py", line 237, in wrapper
return f(*nargs, **wrapped_kwargs)
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreterbase/decorators.py", line 556, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
File "/usr/lib/python3.13/site-packages/mesonbuild/interpreter/compiler.py", line 483, in sizeof_method
esize, cached = self.compiler.sizeof(element, kwargs['prefix'], self.environment,
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
extra_args=extra_args, dependencies=deps)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/mesonbuild/compilers/mixins/clike.py", line 593, in sizeof
return int(res.stdout), res.cached
~~~^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: ''
meson-log.txt
Running compile:
Working directory: code/temp2/gobject-introspection/builddir/meson-private/tmps8khrfka
Code:
#include<stddef.h>
#include<stdio.h>
int main(void) {
printf("%ld\n", (long)(sizeof(char)));
return 0;
}
-----------
Command line: `clang code/temp2/gobject-introspection/builddir/meson-private/tmps8khrfka/testfile.c -o code/temp2/gobject-introspection/builddir/meson-private/tmps8khrfka/output.exe -fsanitize=address -shared-libasan -D_FILE_OFFSET_BITS=64 -O0 -Werror=implicit-function-declaration -std=gnu99 -nostdlib -Wl,-rpath,/usr/lib/clang/19/lib/linux/` -> 0
stderr:
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000001060
-----------
Program stdout:
Program stderr:
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer: nested bug in the same thread, aborting.
To Reproduce
git clone --depth=1 https://gitlab.gnome.org/GNOME/gobject-introspection.git
cd gobject-introspection/
LSAN_OPTIONS="exitcode=0" CC=clang CFLAGS="-fsanitize=address -shared-libasan" LDFLAGS="-fsanitize=address -nostdlib -Wl,-rpath,/usr/lib/clang/19/lib/linux/" meson setup builddir
Expected behavior
I would expect the ValueError to be caught/avoided and an error message to be printed instead
system parameters
- Is this a cross build or just a plain native build (for the same computer)?
- Native build
- what operating system (e.g. MacOS Catalina, Windows 10, CentOS 8.0, Ubuntu 18.04, etc.)
- Arch Linux
- what Python version are you using e.g. 3.8.0
- Python 3.13.2
- what
meson --version- 1.7.2
- what
ninja --versionif it's a Ninja build- 1.12.1