public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/pheeck/heads/sccp)] genmultilib: Fix sanity check
@ 2023-02-15 10:16 Filip Kastl
  0 siblings, 0 replies; only message in thread
From: Filip Kastl @ 2023-02-15 10:16 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:7ea80e884f7f90a2fb831f12e349dd7b7c954c3a

commit 7ea80e884f7f90a2fb831f12e349dd7b7c954c3a
Author: Christophe Lyon <christophe.lyon@arm.com>
Date:   Mon Nov 21 12:12:14 2022 +0100

    genmultilib: Fix sanity check
    
    My previous patch to add a sanity check to genmultilib actually
    checked the number of dirnames with the number of "sets of options"
    rather than the number of options, thus breaking the build on some
    targets.
    
    To avoid duplicating once more the loop that constructs the sed
    patterns, this patch checks that the current dirname/osdirname is not
    empty in the existing loops.
    
    Are there targets where:
    if [ "$1" != "${opt}" ]; then
    is "legally" executed with an empty $1? (and thus where this patch
    would incorrectly trigger an error?)
    
    Sorry for the breakage. Tested on aarch64 by adding an option to
    t-aarch64 and no corresponding dirname, and on x86_64.
    
    gcc/ChangeLog:
    
            * genmultilib: Fix options and dirnames/osdirnames sanity check.

Diff:
---
 gcc/genmultilib | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/gcc/genmultilib b/gcc/genmultilib
index b5f372c8358..c0c271eddd6 100644
--- a/gcc/genmultilib
+++ b/gcc/genmultilib
@@ -141,20 +141,6 @@ 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
@@ -264,6 +250,10 @@ if [ -n "${dirnames}" ]; then
     for opts in `echo ${set} | sed -e 's|/| |'g`; do
       patt="/"
       for opt in `echo ${opts} | sed -e 's_|_ _'g`; do
+	if [ -z "$1" ]; then
+	  echo 1>&2 "Error calling $0: No dirname for option: $opt"
+	  exit 1
+	fi
         if [ "$1" != "${opt}" ]; then
           todirnames="${todirnames} -e s|/${opt}/|/${1}/|g"
 	  patt="${patt}${1}/"
@@ -320,6 +310,10 @@ if [ -n "${osdirnames}" ]; then
       for opts in `echo ${set} | sed -e 's|/| |'g`; do
         patt="/"
         for opt in `echo ${opts} | sed -e 's_|_ _'g`; do
+	if [ -z "$1" ]; then
+	  echo 1>&2 "Error calling $0: No osdirname for option: $opt"
+	  exit 1
+	fi
           if [ "$1" != "${opt}" ]; then
             toosdirnames="${toosdirnames} -e s|/${opt}/|/${1}/|g"
 	    patt="${patt}${1}/"

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-02-15 10:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-15 10:16 [gcc(refs/users/pheeck/heads/sccp)] genmultilib: Fix sanity check Filip Kastl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).