aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorStefan Weil <sw@weilnetz.de>2012-03-27 19:23:53 +0200
committerBlue Swirl <blauwirbel@gmail.com>2012-03-31 12:03:43 +0000
commitbb55b712e8dc4d4eb515144d5c26798fea178cba (patch)
treec6d0e534d584a688333ada69bed22f32c188cf63 /configure
parent02b3efcb7509841871038d89406225d1aaf41684 (diff)
downloadqemu-bb55b712e8dc4d4eb515144d5c26798fea178cba.zip
qemu-bb55b712e8dc4d4eb515144d5c26798fea178cba.tar.gz
qemu-bb55b712e8dc4d4eb515144d5c26798fea178cba.tar.bz2
Fix conversion from lower to upper case with Turkish locale
Some locale settings let make fail or create wrong results because tr '[:lower:]' '[:upper:]' which is used to convert from lower to upper case depends on the locale. With locale tr_TR.UTF-8, lower case 'i' is not converted to 'I'. This results in wrong entries in config-host.h like these ones: #define CONFIG_QEMU_PREFiX "/usr/local" #define CONFIG_QEMU_BiNDiR "/usr/local/bin" This problem was reported by Emre Ersin. The same problem occurs when configure creates the target specific files config-target.mak. They get wrong declarations: TARGET_CRiS=y TARGET_i386=y TARGET_MiCROBLAZE=y TARGET_MiPS64=y TARGET_MiPS=y TARGET_UNiCORE32=y It is sufficient to restrict the conversion to the characters a-z. Using this explicit range avoids the dependency on the locale settings and is also shorter. v2: POSIX says that 'tr a-z' is unspecified outside of the POSIX locale, so we must set LC_ALL=C to make sure that we are using POSIX (hint from Eric Blake, thanks). Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure6
1 files changed, 3 insertions, 3 deletions
diff --git a/configure b/configure
index 14ef738..dd01911 100755
--- a/configure
+++ b/configure
@@ -3052,12 +3052,12 @@ if test "$cap_ng" = "yes" ; then
echo "CONFIG_LIBCAP=y" >> $config_host_mak
fi
for card in $audio_card_list; do
- def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
+ def=CONFIG_`echo $card | LC_ALL=C tr '[a-z]' '[A-Z]'`
echo "$def=y" >> $config_host_mak
done
echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
for drv in $audio_drv_list; do
- def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
+ def=CONFIG_`echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]'`
echo "$def=y" >> $config_host_mak
if test "$drv" = "fmod"; then
echo "FMOD_CFLAGS=-I$fmod_inc" >> $config_host_mak
@@ -3618,7 +3618,7 @@ echo "TARGET_INT_ALIGNMENT=$target_int_alignment" >> $config_target_mak
echo "TARGET_LONG_ALIGNMENT=$target_long_alignment" >> $config_target_mak
echo "TARGET_LLONG_ALIGNMENT=$target_llong_alignment" >> $config_target_mak
echo "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak
-target_arch_name="`echo $TARGET_ARCH | tr '[:lower:]' '[:upper:]'`"
+target_arch_name="`echo $TARGET_ARCH | LC_ALL=C tr '[a-z]' '[A-Z]'`"
echo "TARGET_$target_arch_name=y" >> $config_target_mak
echo "TARGET_ARCH2=$target_arch2" >> $config_target_mak
# TARGET_BASE_ARCH needs to be defined after TARGET_ARCH