From: Christian Heimes Date: Fri, 1 Apr 2022 15:23:12 +0000 (+0300) Subject: bpo-46023: makesetup: skip all duplicate modules (GH-32234) X-Git-Tag: v3.11.0a7~67 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=abdd69c95c1711c2dc75be4e784c6d6c80a409b9;p=thirdparty%2FPython%2Fcpython.git bpo-46023: makesetup: skip all duplicate modules (GH-32234) --- diff --git a/Misc/NEWS.d/next/Build/2022-04-01-16-12-53.bpo-46023.1Z1OcC.rst b/Misc/NEWS.d/next/Build/2022-04-01-16-12-53.bpo-46023.1Z1OcC.rst new file mode 100644 index 000000000000..cb2f7b760e1e --- /dev/null +++ b/Misc/NEWS.d/next/Build/2022-04-01-16-12-53.bpo-46023.1Z1OcC.rst @@ -0,0 +1,2 @@ +``makesetup`` now detects and skips all duplicated module definitions. The +first entry wins. diff --git a/Modules/makesetup b/Modules/makesetup index 3909650ed7c4..9b20e3c9f634 100755 --- a/Modules/makesetup +++ b/Modules/makesetup @@ -117,6 +117,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | BUILT= BUILT_SHARED= DISABLED= + CONFIGURED= MODS= SHAREDMODS= OBJS= @@ -206,12 +207,17 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | cpps="\$(MODULE_${mods_upper}_CFLAGS)" libs="\$(MODULE_${mods_upper}_LDFLAGS)" fi - case $DISABLED in - *$mods*) - # disabled by previous rule / Setup file - continue - ;; - esac + for mod in $mods + do + case $CONFIGURED in + *,${mod},*) + # Detected multiple rules for a module, first rule wins. This + # allows users to disable modules in Setup.local. + echo 1>&2 "maksetup: '$mod' was handled by previous rule." + continue 2;; + esac + CONFIGURED="$CONFIGURED,${mod}," + done case $doconfig in yes) LIBS="$LIBS $libs"