Try to avoid doubling the cppflags if rerun without removing config.sh
authorH.Merijn Brand - Tux <h.m.brand@xs4all.nl>
Thu, 21 Apr 2016 13:32:27 +0000 (15:32 +0200)
committerH.Merijn Brand - Tux <h.m.brand@xs4all.nl>
Thu, 21 Apr 2016 13:32:27 +0000 (15:32 +0200)
Backport of 76e6b6c7dc4c93d421dfe6c24866c3cd4560b57a
Author: Jarkko Hietaniemi <jhi@iki.fi>
Date:   Fri Oct 16 08:10:40 2015 -0400

    Try to avoid doubling the cppflags if rerun without removing config.sh

    This bug has been here since 2001, introduced by yours truly
    in 58e77565.  Hasn't been too harmful, obviously.  It doubles
    the cppflags only once, thankfully, unlimited doubling would
    probably have been noticed earlier.

    The avoidance maneuver is far from fool-proof.  To be more
    fooler-proofer, some sort of order-preserving deduping would
    be needed.

U/compline/ccflags.U

index 4226327..bbd264e 100644 (file)
@@ -323,7 +323,12 @@ esac
 : the following weeds options from ccflags that are of no interest to cpp
 case "$cppflags" in
 '') cppflags="$ccflags" ;;
-*)  cppflags="$cppflags $ccflags" ;;
+*)  set X $ccflags; shift
+    case " $cppflags " in
+    *" $1 "*) ;;  # Try to avoid doubling the cppflags.
+    *) cppflags="$cppflags $ccflags" ;;
+    esac
+    ;;
 esac
 case "$gccversion" in
 1*) cppflags="$cppflags -D__GNUC__"