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>
This commit is contained in:
parent
02b3efcb75
commit
bb55b712e8
6
configure
vendored
6
configure
vendored
@ -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
|
||||
|
@ -16,7 +16,7 @@ case $line in
|
||||
prefix=* | [a-z]*dir=*) # directory configuration
|
||||
name=${line%=*}
|
||||
value=${line#*=}
|
||||
define_name=`echo $name | tr '[:lower:]' '[:upper:]'`
|
||||
define_name=`echo $name | LC_ALL=C tr '[a-z]' '[A-Z]'`
|
||||
eval "define_value=\"$value\""
|
||||
echo "#define CONFIG_QEMU_$define_name \"$define_value\""
|
||||
# save for the next definitions
|
||||
@ -48,7 +48,7 @@ case $line in
|
||||
;;
|
||||
ARCH=*) # configuration
|
||||
arch=${line#*=}
|
||||
arch_name=`echo $arch | tr '[:lower:]' '[:upper:]'`
|
||||
arch_name=`echo $arch | LC_ALL=C tr '[a-z]' '[A-Z]'`
|
||||
echo "#define HOST_$arch_name 1"
|
||||
;;
|
||||
HOST_USB=*)
|
||||
@ -73,7 +73,7 @@ case $line in
|
||||
TARGET_BASE_ARCH=*) # configuration
|
||||
target_base_arch=${line#*=}
|
||||
if [ "$target_base_arch" != "$target_arch" ]; then
|
||||
base_arch_name=`echo $target_base_arch | tr '[:lower:]' '[:upper:]'`
|
||||
base_arch_name=`echo $target_base_arch | LC_ALL=C tr '[a-z]' '[A-Z]'`
|
||||
echo "#define TARGET_$base_arch_name 1"
|
||||
fi
|
||||
;;
|
||||
|
@ -410,7 +410,7 @@ linetoh_dtrace()
|
||||
args=$(get_args "$1")
|
||||
argnames=$(get_argnames "$1", ",")
|
||||
|
||||
nameupper=`echo $name | tr '[:lower:]' '[:upper:]'`
|
||||
nameupper=`echo $name | LC_ALL=C tr '[a-z]' '[A-Z]'`
|
||||
|
||||
# Define an empty function for the trace event
|
||||
cat <<EOF
|
||||
@ -539,7 +539,7 @@ convert()
|
||||
fi
|
||||
if [ "$1" = "h" ]; then
|
||||
name=$(get_name "$str")
|
||||
NAME=$(echo $name | tr '[:lower:]' '[:upper:]')
|
||||
NAME=$(echo $name | LC_ALL=C tr '[a-z]' '[A-Z]')
|
||||
echo "#define TRACE_${NAME}_ENABLED ${enabled}"
|
||||
fi
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user