* Rainer Tammer wrote on Wed, Aug 04, 2010 at 08:41:26AM CEST: > FAIL: tests/nomode.test > > This failure is due to the following error: > > $ ./libtool > ./libtool[1591]: shift: bad number > > -> code > # save first non-option argument > nonopt="$opt"; shift > > But there is nothing in $1, so the shift fails.
Thanks. Fixing with the first patch below. (The double-quotes around what will be $# in the final shell script are merely there to please sh.test.) > # ./libtool > libtool: error: you must specify a MODE. > > The output of libtool-2.2.10 is: > > r...@build53 rc:127 # libtool > *** Warning: inferring the mode of operation is deprecated. > *** Future versions of Libtool will require --mode=MODE be specified. > libtool: warning: cannot infer operation mode without MODE-ARGS > libtool: you must specify a MODE > Try `libtool --help' for more information. Thanks. I'm re-enabling the pointer to --help with the second patch below. Cheers, Ralf Avoid syntax error due to shift of nonexistent parameter. * libltdl/config/ltmain.m4sh <command-line handling>: Only shift if there is a positional parameter to shift. Fixes `libtool --help' when dash is used. Report by Rainer Tammer. diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh index 193ff1a..98c0a27 100644 --- a/libltdl/config/ltmain.m4sh +++ b/libltdl/config/ltmain.m4sh @@ -387,7 +387,10 @@ M4SH_GETOPTS( func_enable_tag "$optarg"], [ # save first non-option argument - nonopt="$opt"; shift + if test "$[]#" -gt 0; then + nonopt="$opt" + shift + fi # preserve --debug $opt_debug && func_append preserve_args " --debug" Let `libtool' without arguments point to `--help' again. * libltdl/config/ltmain.m4sh (func_check_version_match): Remove duplicate and wrong error check. * tests/help.at (standard command line options): Extend test. Report by Rainer Tammer. diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh index 98c0a27..32a41c7 100644 --- a/libltdl/config/ltmain.m4sh +++ b/libltdl/config/ltmain.m4sh @@ -413,8 +413,6 @@ M4SH_GETOPTS( func_fatal_configuration "not configured to build any kind of library" fi - test -z "$opt_mode" && func_fatal_error "error: you must specify a MODE." - # Darwin sucks eval std_shrext=\"$shrext_cmds\" diff --git a/tests/help.at b/tests/help.at index 3460a2b..e1bcbf5 100644 --- a/tests/help.at +++ b/tests/help.at @@ -1,6 +1,6 @@ # help.at -- standard command line options -*- Autotest -*- # -# Copyright (C) 2009 Free Software Foundation, Inc. +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. # # This file is part of GNU Libtool. # @@ -35,6 +35,10 @@ AT_CHECK([$LIBTOOL --help-all], [], [ignore]) AT_CHECK([$LIBTOOL --version], [], [stdout]) AT_CHECK([grep 'Copyright.*Free Software Foundation' stdout], [], [ignore]) +AT_CHECK([$LIBTOOL], [1], [ignore], [stderr]) +AT_CHECK([grep 'specify a MODE' stderr], [], [ignore]) +AT_CHECK([grep ' --help' stderr], [], [ignore]) + AT_CLEANUP