bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: libtool-2.2.11a on AIX 5.3 / 5.3 current git master - tests/nomode.


From: Ralf Wildenhues
Subject: Re: libtool-2.2.11a on AIX 5.3 / 5.3 current git master - tests/nomode.test
Date: Wed, 4 Aug 2010 22:34:18 +0200
User-agent: Mutt/1.5.20 (2010-04-22)

* 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:
> 
> address@hidden 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
 
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]