aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers/compilers.py5
-rw-r--r--mesonbuild/compilers/mixins/clang.py6
2 files changed, 8 insertions, 3 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index e23d18e..ed77df6 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -1154,11 +1154,12 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta):
def get_compiler_check_args(self, mode: CompileCheckMode) -> T.List[str]:
"""Arguments to pass the compiler and/or linker for checks.
- The default implementation turns off optimizations. mode should be
- one of:
+ The default implementation turns off optimizations.
Examples of things that go here:
- extra arguments for error checking
+ - Arguments required to make the compiler exit with a non-zero status
+ when something is wrong.
"""
return self.get_no_optimization_args()
diff --git a/mesonbuild/compilers/mixins/clang.py b/mesonbuild/compilers/mixins/clang.py
index e7d30fc..f7e9492 100644
--- a/mesonbuild/compilers/mixins/clang.py
+++ b/mesonbuild/compilers/mixins/clang.py
@@ -81,7 +81,11 @@ class ClangCompiler(GnuLikeCompiler):
return ['-include-pch', os.path.join(pch_dir, self.get_pch_name(header))]
def get_compiler_check_args(self, mode: CompileCheckMode) -> T.List[str]:
- myargs = [] # type: T.List[str]
+ # Clang is different than GCC, it will return True when a symbol isn't
+ # defined in a header. Specifically this seems ot have something to do
+ # with functions that may be in a header on some systems, but not all of
+ # them. `strlcat` specifically with can trigger this.
+ myargs: T.List[str] = ['-Werror=implicit-function-declaration']
if mode is CompileCheckMode.COMPILE:
myargs.extend(['-Werror=unknown-warning-option', '-Werror=unused-command-line-argument'])
if mesonlib.version_compare(self.version, '>=3.6.0'):