[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ksh bug on Tru64 UNIX causes current libtool failure
From: |
Ralf Wildenhues |
Subject: |
Re: ksh bug on Tru64 UNIX causes current libtool failure |
Date: |
Wed, 25 May 2005 18:22:37 +0200 |
User-agent: |
Mutt/1.4.1i |
[ Alexander, the patch to work around shell bugs on your platform breaks
on other ones. As the failure on yours are "more" harmless, I'd like to
revert them. See the thread on the libtool mailing list. ]
* Nicolas Joly wrote on Thu, May 19, 2005 at 12:39:43AM CEST:
> On Wed, May 18, 2005 at 11:09:21PM +0200, Ralf Wildenhues wrote:
> > * Nicolas Joly wrote on Wed, May 18, 2005 at 05:03:05PM CEST:
> > >
> > > I can't even compile libtool 1.5.18 on my Tru64 unix V5.1B
> > > workstation:
> > *snip*
> > > /bin/ksh ./libtool --tag=CC --mode=compile cc -DHAVE_CONFIG_H -I. -I.
> > > -I. -g -c -o ltdl.lo ltdl.c
> > > libtool: compile: libobj name `ltdl.lo' may not contain shell special
> > > characters.
> > > *** Exit 1
> >
> > That'll teach me to ever do fatal errors based on shell correctness
> > assumptions again. :(
OK to apply this patch to branch-2-0 and HEAD, and then backport to
branch-1-5?
BTW, I have been working on actually allowing these special characters
in object file names. Just not done yet (and that will certainly not be
backported).
Regards,
Ralf
* config/ltmain.m4sh (func_mode_compile): In order to find out
about forbidden characters in output, check with grep after checking
func_quote_for_eval result. Also, warn instead of fail.
* config/general.m4sh (func_quote_for_eval, func_quote_for_expand):
Revert SunOS sh bug workaround patch from 2004-12-28 as it
triggers bugs in the Tru64 5.1B shell.
Reported by Albert Chin <address@hidden> and
Nicolas Joly <address@hidden>.
Index: config/ltmain.m4sh
===================================================================
RCS file: /cvsroot/libtool/libtool/config/ltmain.m4sh,v
retrieving revision 1.66
diff -u -r1.66 ltmain.m4sh
--- config/ltmain.m4sh 27 Apr 2005 11:30:38 -0000 1.66
+++ config/ltmain.m4sh 25 May 2005 16:06:23 -0000
@@ -1228,7 +1228,8 @@
func_quote_for_eval "$libobj"
test "X$libobj" != "X$func_quote_for_eval_result" \
- && func_fatal_error "libobj name \`$libobj' may not contain shell
special characters."
+ && $ECHO "X$libobj" | $GREP ['[@:>@~#^*{};<>?"'"'"' &()|`$@<:@]'] \
+ && func_warning "libobj name \`$libobj' may not contain shell special
characters."
func_basename "$obj"
objname="$func_basename_result"
func_dirname "$obj" "/" ""
Index: config/general.m4sh
===================================================================
RCS file: /cvsroot/libtool/libtool/config/general.m4sh,v
retrieving revision 1.17
diff -u -r1.17 general.m4sh
--- config/general.m4sh 22 Apr 2005 10:10:30 -0000 1.17
+++ config/general.m4sh 25 May 2005 16:06:23 -0000
@@ -96,9 +96,6 @@
# Same as above, but do not quote variable references.
double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-# Protect character class for func_quote_* by variable expansion.
-quote_scanset='[[@<:@~#^*{};<>?'"'"' ]]'
-
# Re-`\' parameter expansions in output of double_quote_subst that were
# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
# in input to double_quote_subst, that '$' was protected from expansion.
@@ -286,11 +283,9 @@
# Double-quote args containing shell metacharacters to delay
# word splitting, command substitution and and variable
# expansion for a subsequent eval.
- # in scan sets, and some SunOS ksh mistreat backslash-escaping
- # in scan sets (worked around with variable expansion),
- # and furthermore cannot handle '|' '&' '(' ')' in scan sets
- # at all, so we specify them separately.
- *$quote_scanset* | *@:>@* | *\|* | *\&* | *\(* | *\)* | "")
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[[\@<:@\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]]*|*@:>@*|"")
func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
;;
*)
@@ -316,11 +311,8 @@
# Double-quote args containing shell metacharacters to delay
# word splitting and command substitution for a subsequent eval.
# Many Bourne shells cannot handle close brackets correctly
- # in scan sets, and some SunOS ksh mistreat backslash-escaping
- # in scan sets (worked around with variable expansion),
- # and furthermore cannot handle '|' '&' '(' ')' in scan sets
- # at all, so we specify them separately.
- *$quote_scanset* | *@:>@* | *\|* | *\&* | *\(* | *\)* | "")
+ # in scan sets, so we specify it separately.
+ *[[\@<:@\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]]*|*@:>@*|"")
my_arg="\"$my_arg\""
;;
esac
- Re: ksh bug on Tru64 UNIX causes current libtool failure, (continued)
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Ralf Wildenhues, 2005/05/16
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Albert Chin, 2005/05/17
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Ralf Wildenhues, 2005/05/18
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Nicolas Joly, 2005/05/18
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Albert Chin, 2005/05/18
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Ralf Wildenhues, 2005/05/18
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Tim Mooney, 2005/05/18
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Albert Chin, 2005/05/19
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Tim Mooney, 2005/05/19
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Nicolas Joly, 2005/05/18
- Re: ksh bug on Tru64 UNIX causes current libtool failure,
Ralf Wildenhues <=
- Re: ksh bug on Tru64 UNIX causes current libtool failure, Albert Chin, 2005/05/18