*Synopsis*: *ksh93* problem with command substitution (within back quotes)
containing \$'
CR 6710205 changed on Dec 23 2008 by <User 1-5Q-5151>
=== Field ============ === New Value ============= === Old Value =============
See Also 6437624
====================== =========================== ===========================
*Change Request ID*: 6710205
*Synopsis*: *ksh93* problem with command substitution (within back quotes)
containing \$'
Product: solaris
Category: shell
Subcategory: korn93
Type: Defect
Subtype:
Status: 7-Fix in Progress
Substatus:
Priority: 3-Medium
Introduced In Release: solaris_nevada
Introduced In Build: snv_72
Responsible Engineer: <User 1-5Q-5151>
Keywords: opensolaris, oss-request, oss-sponsor
=== *Description* ============================================================
Category
shell
Sub-Category
bourne
Description
This extract from the Qt 4.3/4.4 configure script does not work correctly:
#!/bin/sh
# Adds a new qmake variable to the cache
# Usage: QMakeVar mode varname contents
# where mode is one of: set, add, del
QMakeVar()
{
case "$1" in
set)
eq="="
;;
add)
eq="+="
;;
del)
eq="-="
;;
*)
echo >&2 "BUG: wrong command to QMakeVar: $1"
;;
esac
echo "$2" "$eq" "$3"
}
SYSTEM_VARIABLES="CC CXX CFLAGS CXXFLAGS LDFLAGS"
for varname in $SYSTEM_VARIABLES; do
cmd=`echo \
'if [ -n "\$'${varname}'" ]; then
QMakeVar set QMAKE_'${varname}' "\$'${varname}'"
fi'`
eval "$cmd"
done
Frequency
Always
Regression
Solaris 10
Steps to Reproduce
Run the above script. If none of the 'SYSTEM_VARIABLES' are set in the
environment, nothing should be printed.
Expected Result
No output when CC etc are not set.
Actual Result
prints lines like
QMAKE_CC = $CC
In the Qt configure script, this causes malformed Makefiles to be generated,
and the build of Qt fails.
Error Message(s)
None
Test Case
Workaround
Use #!/bin/bash in the script
Submitter wants to work on bug
No
Additional configuration information
OS2008.05, running on Parallels on a Mac. I've read other reports of this
problem (don't know what hardware).
*** (#1 of 2): 2008-06-03 22:06:25 GMT+00:00 <User 1-F4SZV>
David Korn responds:
This is a ksh93 bug that has been there since the first release of ksh93.
The bug happens with the sequence \$. inside ``. Note, that `` is
obsolete and you should use $(...) instead.
The next ksh93 patch will contain a fix for this.
["The next patch" refers to the upstream ksh93 release.]
*** (#2 of 2): 2008-06-06 19:06:17 GMT+00:00 <User 1-5Q-1267>
=== *Public Comments* ========================================================
=== *Workaround* =============================================================
=== *Additional Details* =====================================================
Targeted Release: solaris_nevada
Commit To Fix In Build: snv_106
Fixed In Build:
Integrated In Build:
Verified In Build:
See Also: 6437624, 6619428
Duplicate of:
Hooks:
Hook1:
Hook2:
Hook3:
Hook4:
Hook5: <email address omitted>
Hook6: <email address omitted>
Program Management:
Root Cause: Other - see Research Activity
Fix Affects Documentation: No
Fix Affects Localization: No
=== *History* ================================================================
Date Submitted: 2008-06-03 22:06:24 GMT+00:00
Submitted By: <User 1-F4SZV>
Status Changed Date Updated Updated By
6-Fix Understood 2008-10-14 17:36:08 GMT+00:00 <User 1-5Q-5151>
7-Fix in Progress 2008-12-22 07:48:46 GMT+00:00 <User 1-5Q-5151>
=== *Service Request* ========================================================
Impact: Limited
Functionality: Secondary
Severity: 4
Product Name: solaris
Product Release: solaris_nevada
Product Build: snv_86
Operating System: solaris_nevada
Hardware: x86
Submitted Date: 2008-06-03 22:06:25 GMT+00:00
=== *Multiple Release (MR) Cluster* - 0 ======================================