fuzz: don't panic without a C++ compiler
authorFrantisek Sumsal <frantisek@sumsal.cz>
Wed, 15 Nov 2023 10:41:45 +0000 (11:41 +0100)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Wed, 15 Nov 2023 12:07:42 +0000 (12:07 +0000)
meson's `cpp_args` option is defined only if it detects a C++ compiler,
otherwise we get an error:

../test/fuzz/meson.build:56:28: ERROR: Tried to access unknown option 'cpp_args'.

test/fuzz/meson.build
tools/meson-build.sh

index 4b7d9236175ea79eebdcb974a4c554c53a16e69c..b6bcb52551570d99268969c22effb15c0c49bdd7 100644 (file)
@@ -45,6 +45,13 @@ else
         sanitize_auto_features = 'auto'
 endif
 
+fuzz_c_args = get_option('c_args')
+if cxx_cmd != ''
+        fuzz_cpp_args = get_option('cpp_args')
+else
+        fuzz_cpp_args = []
+endif
+
 sanitize_address_undefined = custom_target(
         'sanitize-address-undefined-fuzzers',
         output : 'sanitize-address-undefined-fuzzers',
@@ -52,8 +59,8 @@ sanitize_address_undefined = custom_target(
                    project_source_root,
                    '@OUTPUT@',
                    'fuzzers',
-                   ' '.join(get_option('c_args') + '-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION'),
-                   ' '.join(get_option('cpp_args') + '-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION'),
+                   ' '.join(fuzz_c_args + '-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION'),
+                   ' '.join(fuzz_cpp_args + '-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION'),
                    '-Dfuzz-tests=true -Db_lundef=false -Db_sanitize=address,undefined --optimization=@0@ @1@ --auto-features=@2@'.format(
                            get_option('optimization'),
                            get_option('werror') ? '--werror' : '',
index 311b778f0a9993ca7d7149f9f894bb75f5748242..2366df23f9d049498741b153f9b0cc71d94c3d00 100755 (executable)
@@ -9,7 +9,7 @@ c_args="${4:?}"
 cpp_args="${5:?}"
 options="${6:?}"
 CC="${7:?}"
-CXX="${8:?}"
+CXX="$8"
 
 if [ ! -f "$builddir/build.ninja" ]; then
     # shellcheck disable=SC2086