]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
genmultilib: Add sanity check
authorChristophe Lyon <christophe.lyon@arm.com>
Thu, 27 Oct 2022 08:50:53 +0000 (08:50 +0000)
committerChristophe Lyon <christophe.lyon@arm.com>
Mon, 21 Nov 2022 09:20:59 +0000 (10:20 +0100)
When a list of dirnames is provided to genmultilib, its length is
expected to match the number of options.  If this is not the case, the
build fails later for reasons not obviously related to this mistake.
This patch adds a sanity check to help diagnose such cases.

Tested by adding an option to t-aarch64 and no corresponding dirname,
with both bash and dash.

v2: do not use arrays (bash feature).

OK for trunk?

gcc/ChangeLog:

* genmultilib: Add sanity check.

gcc/genmultilib

index 1e387fb15898f3d165af39fdca82e08dd246f833..b5f372c83581faa8a8f623c65febc7d7e71f0dd9 100644 (file)
@@ -141,6 +141,20 @@ multiarch=$9
 multilib_reuse=${10}
 enable_multilib=${11}
 
+# Sanity check: make sure we have as many dirnames as options
+if [ -n "${dirnames}" ]; then
+    set x $options
+    nboptions=$#
+    set x $dirnames
+    nbdirnames=$#
+    if [ $nbdirnames -ne $nboptions ]; then
+       echo 1>&2 "Error calling $0: Number of dirnames ($nbdirnames) does not match number of options ($nboptions)"
+       echo 1>&2 "options: ${options}"
+       echo 1>&2 "dirnames: ${dirnames}"
+       exit 1
+    fi
+fi
+
 echo "static const char *const multilib_raw[] = {"
 
 mkdir tmpmultilib.$$ || exit 1