From: Stefan Weil <weil@mail.berlios.de>
To: "Andreas Färber" <andreas.faerber@web.de>
Cc: Blue Swirl <blauwirbel@gmail.com>,
Paolo Bonzini <pbonzini@redhat.com>,
QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH v2] win32: Fix CRLF problem in make_device_config.sh
Date: Sun, 19 Dec 2010 16:42:47 +0100 [thread overview]
Message-ID: <4D0E27F7.6020006@mail.berlios.de> (raw)
In-Reply-To: <AANLkTimUc+rFOqXbieGAvM6+WJa0LG1_a44XhGqnm6Q_@mail.gmail.com>
Am 18.12.2010 19:59, schrieb Blue Swirl:
> Thanks, applied.
>
> On Sat, Dec 18, 2010 at 5:09 PM, Andreas Färber
> <andreas.faerber@web.de> wrote:
>> Am 18.12.2010 um 17:34 schrieb Stefan Weil:
>>
>>> QEMU source code with CRLF line endings
>>> which is quite common on windows hosts
>>> fails with current make_device_config.sh.
>>>
>>> The awk script gets the name of the included
>>> file with \r, so instead of pci.mak it will
>>> search for pci.mak\r which of course does
>>> not work.
>>>
>>> Fix this by removing any \r.
>>>
>>> v2:
>>> Avoid using sub() and \r with awk because they are unsupported
>>> on some platforms. Use tr to remove \r. This new solution
>>> improves portability and was suggested by Paolo Bonzini.
>>>
>>> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
>>
>> Acked-by: Andreas Färber <andreas.faerber@web.de>
>>> ---
>>> make_device_config.sh | 2 +-
>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/make_device_config.sh b/make_device_config.sh
>>> index 8abadfe..596fc5b 100644
>>> --- a/make_device_config.sh
>>> +++ b/make_device_config.sh
>>> @@ -18,7 +18,7 @@ process_includes () {
>>>
>>> f=$src
>>> while [ -n "$f" ] ; do
>>> - f=`awk '/^include / {ORS=" " ; print "'$src_dir'/" $2}' $f`
>>> + f=`tr -d '\r' < $f | awk '/^include / {ORS=" "; print "'$src_dir'/"
>>> $2}'`
>>> [ $? = 0 ] || exit 1
>>> all_includes="$all_includes $f"
>>> done
>>> --
>>> 1.7.2.3
The new code raises a new problem (sorry that I did not detect it earlier):
On hosts with /bin/sh != bash, make displays an error from
make_device_config.sh:
$ touch default-configs/i386-softmmu.mak
$ make
GEN i386-softmmu/config-devices.mak
/qemu/make_device_config.sh: 24: cannot open
/qemu/default-configs/pci.mak : No such file
make continues, so the error message is not fatal but a cosmetical issue.
It took me some time to find the reason for this error message although
it is quite simple:
The filename f which is calculated using awk ends with a blank character
caused by ORS=" ".
Obviously this blank does not matter for bash and other shells when
$f is used as a parameter. I/O redirection with bash works, too.
But dash (and perhaps other simple shells) work different. For dash,
< $f works like < "$f", so the blank is part of the filename,
and "pci.mak " of course does not exist. Is this a dash bug or a feature?
Using ORS="" solves the problem for me, but might raise new compatibility
problems (is an empty records separator always supported?).
Andreas, may I ask you for one more test?
$ echo -e 'include xy\r' | tr -d '\r' | awk '/^include / {ORS=""; print
$2}' | od -c
It should return 0000002, not 0000003 like the previous test:
0000000 x y
0000002
Regards,
Stefan
next prev parent reply other threads:[~2010-12-19 15:43 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-16 21:52 [Qemu-devel] [PATCH] win32: Fix CRLF problem in make_device_config.sh Stefan Weil
2010-12-16 22:42 ` [Qemu-devel] " Paolo Bonzini
2010-12-17 13:34 ` Andreas Färber
2010-12-17 13:44 ` Paolo Bonzini
2010-12-17 19:01 ` Stefan Weil
2010-12-17 19:33 ` Andreas Färber
2010-12-17 19:54 ` Stefan Weil
2010-12-17 21:00 ` Andreas Färber
2010-12-17 21:25 ` Paolo Bonzini
2010-12-17 22:17 ` Andreas Färber
2010-12-17 23:24 ` Paolo Bonzini
2010-12-18 10:19 ` Stefan Weil
2010-12-18 12:02 ` Andreas Färber
2010-12-18 14:20 ` Stefan Weil
2010-12-17 20:08 ` Paolo Bonzini
2010-12-18 16:34 ` [Qemu-devel] [PATCH v2] " Stefan Weil
2010-12-18 17:09 ` Andreas Färber
2010-12-18 18:59 ` Blue Swirl
2010-12-19 15:42 ` Stefan Weil [this message]
2010-12-19 16:06 ` Andreas Färber
2010-12-20 10:37 ` Paolo Bonzini
2010-12-30 21:53 ` Andreas Färber
2010-12-30 22:04 ` [Qemu-devel] [PATCH] make_device_config: Fix non-fatal error message with dash and other shells Stefan Weil
2010-12-30 23:08 ` Andreas Färber
2010-12-19 16:21 ` [Qemu-devel] [PATCH v2] win32: Fix CRLF problem in make_device_config.sh Blue Swirl
2010-12-19 16:43 ` Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D0E27F7.6020006@mail.berlios.de \
--to=weil@mail.berlios.de \
--cc=andreas.faerber@web.de \
--cc=blauwirbel@gmail.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.