libtool-patches
[Top][All Lists]
Advanced

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

Re: expr complaint on FreeBSD for MinGW cross


From: Ralf Wildenhues
Subject: Re: expr complaint on FreeBSD for MinGW cross
Date: Sat, 19 Apr 2008 11:36:14 +0200
User-agent: Mutt/1.5.17+20080114 (2008-01-14)

* Ralf Wildenhues wrote on Sat, Apr 19, 2008 at 01:56:59AM CEST:
> Ouch.  ETOOLATE.   Of course $name is used, in libname_spec for example.
> Please ignore this, I'll post an updated patch.

OK to apply?

Thanks,
Ralf

2008-04-19  Ralf Wildenhues  <address@hidden>

        Fix nonportable use of expr.
        * libltdl/config/ltmain.m4sh (func_mode_link) <Transforming
        deplibs into only shared deplibs>: Fix expr portability issues,
        noted on FreeBSD.  While at it, simplify and avoid forking.
        Report by Bob Friesenhahn.

diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 8c5c45c..5018de8 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -5558,9 +5558,10 @@ EOF
          if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
            ldd_output=`ldd conftest`
            for i in $deplibs; do
-             name=`expr $i : '-l\(.*\)'`
-             # If $name is empty we are operating on a -L argument.
-             if test "$name" != "" && test "$name" != "0"; then
+             case $i in
+             -l*)
+               func_stripname -l '' "$i"
+               name=$func_stripname_result
                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; 
then
                  case " $predeps $postdeps " in
                  *" $i "*)
@@ -5587,17 +5588,20 @@ EOF
                    $ECHO "*** its dynamic dependency list that programs get 
resolved with at runtime."
                  fi
                fi
-             else
+               ;;
+             *)
                newdeplibs="$newdeplibs $i"
-             fi
+               ;;
+             esac
            done
          else
            # Error occurred in the first compile.  Let's try to salvage
            # the situation: Compile a separate program for each library.
            for i in $deplibs; do
-             name=`expr $i : '-l\(.*\)'`
-             # If $name is empty we are operating on a -L argument.
-             if test "$name" != "" && test "$name" != "0"; then
+             case $i in
+             -l*)
+               func_stripname -l '' "$i"
+               name=$func_stripname_result
                $opt_dry_run || $RM conftest
                if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
                  ldd_output=`ldd conftest`
@@ -5635,9 +5639,11 @@ EOF
                  $ECHO "*** library that it depends on before this library 
will be fully"
                  $ECHO "*** functional.  Installing it before continuing would 
be even better."
                fi
-             else
+               ;;
+             *)
                newdeplibs="$newdeplibs $i"
-             fi
+               ;;
+             esac
            done
          fi
          ;;
@@ -5645,9 +5651,10 @@ EOF
          set dummy $deplibs_check_method; shift
          file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
          for a_deplib in $deplibs; do
-           name=`expr $a_deplib : '-l\(.*\)'`
-           # If $name is empty we are operating on a -L argument.
-           if test "$name" != "" && test  "$name" != "0"; then
+           case $a_deplib in
+           -l*)
+             func_stripname -l '' "$a_deplib"
+             name=$func_stripname_result
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; 
then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
@@ -5704,19 +5711,22 @@ EOF
                  $ECHO "*** using a file magic. Last file checked: $potlib"
                fi
              fi
-           else
+             ;;
+           *)
              # Add a -L argument.
              newdeplibs="$newdeplibs $a_deplib"
-           fi
+             ;;
+           esac
          done # Gone through all deplibs.
          ;;
        match_pattern*)
          set dummy $deplibs_check_method; shift
          match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
          for a_deplib in $deplibs; do
-           name=`expr $a_deplib : '-l\(.*\)'`
-           # If $name is empty we are operating on a -L argument.
-           if test -n "$name" && test "$name" != "0"; then
+           case $a_deplib in
+           -l*)
+             func_stripname -l '' "$a_deplib"
+             name=$func_stripname_result
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; 
then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
@@ -5755,10 +5765,12 @@ EOF
                  $ECHO "*** using a regex pattern. Last file checked: $potlib"
                fi
              fi
-           else
+             ;;
+           *)
              # Add a -L argument.
              newdeplibs="$newdeplibs $a_deplib"
-           fi
+             ;;
+           esac
          done # Gone through all deplibs.
          ;;
        none | unknown | *)




reply via email to

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