diff mbox

configure: replace \n with space in optarg

Message ID 1407136375-19688-1-git-send-email-hutao@cn.fujitsu.com
State New
Headers show

Commit Message

Hu Tao Aug. 4, 2014, 7:12 a.m. UTC
When optarg happens to contain \n like:

../configure --target-list='i386-softmmu
 x86_64-softmmu'

make will fail with message:

config-host.mak:45: *** missing separator.  Stop.

This patch fix this problem by replacing \n with space in optarg.

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
---
 configure | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Peter Maydell Aug. 4, 2014, 8:50 a.m. UTC | #1
On 4 August 2014 08:12, Hu Tao <hutao@cn.fujitsu.com> wrote:
> When optarg happens to contain \n like:
>
> ../configure --target-list='i386-softmmu
>  x86_64-softmmu'
>
> make will fail with message:
>
> config-host.mak:45: *** missing separator.  Stop.

Why would you put newlines in the option string? This is
likely to break for many configure arguments, not just this
one...

I'm a bit dubious about taking this change unless you can
point to existing practice (eg do autoconf configure scripts
clean up whitespace like this?)

thanks
-- PMM
Hu Tao Aug. 4, 2014, 9:29 a.m. UTC | #2
On Mon, Aug 04, 2014 at 09:50:20AM +0100, Peter Maydell wrote:
> On 4 August 2014 08:12, Hu Tao <hutao@cn.fujitsu.com> wrote:
> > When optarg happens to contain \n like:
> >
> > ../configure --target-list='i386-softmmu
> >  x86_64-softmmu'
> >
> > make will fail with message:
> >
> > config-host.mak:45: *** missing separator.  Stop.
> 
> Why would you put newlines in the option string? This is
> likely to break for many configure arguments, not just this
> one...

It is not intended but once when I did copy&paste the string it brought a
\n.

> 
> I'm a bit dubious about taking this change unless you can
> point to existing practice (eg do autoconf configure scripts
> clean up whitespace like this?)

I doubt there is.

> 
> thanks
> -- PMM
diff mbox

Patch

diff --git a/configure b/configure
index f7685b5..0ee9de1 100755
--- a/configure
+++ b/configure
@@ -338,7 +338,7 @@  numa=""
 
 # parse CC options first
 for opt do
-  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
+  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)' | tr '\n' ' '`
   case "$opt" in
   --cross-prefix=*) cross_prefix="$optarg"
   ;;
@@ -722,7 +722,7 @@  fi
 werror=""
 
 for opt do
-  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
+  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)' | tr '\n' ' '`
   case "$opt" in
   --help|-h) show_help=yes
   ;;