[ 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 <[EMAIL PROTECTED]> and Nicolas Joly <[EMAIL PROTECTED]>. 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 _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool