14760 – [3.4 regression]A bug in configure{,.in} prevents using both --program-suffix and --program-prefix (original) (raw)

Bug 14760 - [3.4 regression]A bug in configure{,.in} prevents using both --program-suffix and --program-prefix

Summary: [3.4 regression]A bug in configure{,.in} prevents using both --program-suffix...

| Description Nikita V. Youshchenko 2004-03-28 14:57:59 UTC Hello. When options like --program-suffix and --program-prefix are passed to configure script, they are normally converted to a sed program and then discarded, so when configure is called to subdirs, these options are not passed. This logic is implemented by the following code from configure.in: cat <<\EOF_SED > conftestsed s/ --no[[^ ]]* / / s/ --c[[a-z-]]*[[= ]][[^ ]]* / / s/ --sr[[a-z-]]*[[= ]][[^ ]]* / / s/ --ho[[a-z-]]*[[= ]][[^ ]]* / / s/ --bu[[a-z-]]*[[= ]][[^ ]]* / / s/ --t[[a-z-]]*[[= ]][[^ ]]* / / s/ --program-[[pst]][[a-z-]]*[[= ]][[^ ]]* / / s/ -cache-file[[= ]][[^ ]]* / / s/ -srcdir[[= ]][[^ ]]* / / s/ -host[[= ]][[^ ]]* / / s/ -build[[= ]][[^ ]]* / / s/ -target[[= ]][[^ ]]* / / s/ -program-prefix[[= ]][[^ ]]* / / s/ -program-suffix[[= ]][[^ ]]* / / s/ -program-transform-name[[= ]][[^ ]]* / / s/ [[^' -][^ ]*] / / s/^ *//;s/ *$// s,\$,$$,g EOF_SED sed -f conftestsed <<EOF_SED > conftestsed.out ${ac_configure_args} EOF_SED baseargs=`cat conftestsed.out` rm -f conftestsed conftestsed.out If both --program-prefix and --program-suffix will be given, the corresponding regilar expression ' --program-[[pst]][[a-z-]]*[[= ]][[^ ]]* ' will catch only first of two, not touching the second. Since not-discarded option is already converted to a sed program, lated this will result in either prefix of suffix (what happens to be second) added twice to program names. This could be fixed trivially - just add 'g' modifier to corresponding line of the above sed program: --- configure.in.orig 2004-02-06 10:03:08.000000000 +0300 +++ configure.in 2004-03-10 00:39:05.000000000 +0300 @@ -1778,7 +1778,7 @@ s/ --ho[[a-z-]]*[[= ]][[^ ]]* / / s/ --bu[[a-z-]]*[[= ]][[^ ]]* / / s/ --t[[a-z-]]*[[= ]][[^ ]]* / / -s/ --program-[[pst]][[a-z-]]*[[= ]][[^ ]]* / / +s/ --program-[[pst]][[a-z-]]*[[= ]][[^ ]]* / /g s/ -cache-file[[= ]][[^ ]]* / / s/ -srcdir[[= ]][[^ ]]* / / s/ -host[[= ]][[^ ]]* / / I faced this problem when I worked with Debian gcc-3.4 source package to make it build cross-compilers. So I am reporting this against 3.4. However, most likely the same buglet is also there in other gcc branches. Comment 3 Nathanael C. Nerode 2004-04-07 01:50:07 UTC I would like to add the same patch I added to mainline to 3.4 branch, after it reopens (the state of mainline and 3.4 branch was identical for this code). If this got in before 3.4, of course, that would be cool. This does not affect 3.3 branch. Comment 4 Mark Mitchell 2004-06-12 22:54:53 UTC Nathanael, this is fine for 3.4.1. Comment 5 Mark Mitchell 2004-06-19 00:03:10 UTC Nathanel, would you please apply this patch ASAP? Comment 7 Mark Mitchell 2004-06-25 21:33:50 UTC I applied this patch. Fixed in GCC 3.4.1. | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |