libtool-patches
[Top][All Lists]
Advanced

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

Re: PATCH fixups for proper setting of archive_cmds_need_lc


From: Robert Boehne
Subject: Re: PATCH fixups for proper setting of archive_cmds_need_lc
Date: Tue, 04 Feb 2003 01:08:15 -0600

Approved!  Checking in to CVS head.

Thanks,

Robert

Albert Chin wrote:
> 
> On Sun, Jan 12, 2003 at 03:20:02PM -0600, Albert Chin wrote:
> > On Sun, Jan 12, 2003 at 02:46:02PM -0600, Robert Boehne wrote:
> > > @@ -5376,11 +5375,11 @@
> > >  if test "$GCC" = yes; then
> > >    variables_saved_for_relink="$variables_saved_for_relink 
> > > GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
> > >  fi
> > > -
> > > +# Skip the -lc test if a tag was specified.
> > > +ifelse([$1],[],[
> > >  #
> > >  # Do we need to explicitly link libc?
> > >  #
> > > -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
> > >  if test "$enable_shared" = yes && test "$GCC" = yes; then
> > >    case $_LT_AC_TAGVAR(archive_cmds, $1) in
> > >    *'~'*)
> > > @@ -5421,7 +5420,7 @@
> > >      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
> > >      ;;
> > >    esac
> > > -fi
> > > +fi], [])
> > >  ])# AC_LIBTOOL_PROG_LD_SHLIBS
> >
> > I disagree with treating the C tag specially. No tag should be treated
> > any different than another. So, my preference is to see:
> >   _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
> > in all non-C tags specified explicitly.
> 
> How about this patch?
> 
> --
> albert chin (address@hidden)
> 
> -- snip snip
> Index: libtool.m4
> ===================================================================
> RCS file: /cvsroot/libtool/libtool/libtool.m4,v
> retrieving revision 1.290
> diff -u -3 -p -r1.290 libtool.m4
> --- libtool.m4  15 Jan 2003 02:55:33 -0000      1.290
> +++ libtool.m4  19 Jan 2003 01:38:17 -0000
> @@ -3460,7 +3456,6 @@ $rm -f confest.$objext
> 
>  case " $_LT_AC_TAGVAR(postdeps, $1) " in
>  *" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
> -*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes ;;
>  esac
>  ])# AC_LIBTOOL_POSTDEP_PREDEP
> 
> @@ -4810,7 +4802,6 @@ ifelse([$1],[CXX],[
>    _LT_AC_TAGVAR(allow_undefined_flag, $1)=
>    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
>    _LT_AC_TAGVAR(archive_cmds, $1)=
> -  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=
>    _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
>    _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
>    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
> @@ -5505,48 +5497,54 @@ fi
>  #
>  # Do we need to explicitly link libc?
>  #
> -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
> -if test "$enable_shared" = yes && test "$GCC" = yes; then
> -  case $_LT_AC_TAGVAR(archive_cmds, $1) in
> -  *'~'*)
> -    # FIXME: we may have to deal with multi-command sequences.
> -    ;;
> -  '$CC '*)
> -    # Test whether the compiler implicitly links with -lc since on some
> -    # systems, -lgcc has to come before -lc. If gcc already passes -lc
> -    # to ld, don't add -lc before -lgcc.
> -    AC_MSG_CHECKING([whether -lc should be explicitly linked in])
> -    $rm conftest*
> -    printf "$lt_simple_compile_test_code" > conftest.$ac_ext
> -
> -    if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
> -      soname=conftest
> -      lib=conftest
> -      libobjs=conftest.$ac_objext
> -      deplibs=
> -      wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
> -      compiler_flags=-v
> -      linker_flags=-v
> -      verstring=
> -      output_objdir=.
> -      libname=conftest
> -      lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
> -      _LT_AC_TAGVAR(allow_undefined_flag, $1)=
> -      if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc 
> \" \>/dev/null 2\>\&1)
> -      then
> -       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
> +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
> +x|xyes)
> +  # Assume -lc should be added
> +  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
> +
> +  if test "$enable_shared" = yes && test "$GCC" = yes; then
> +    case $_LT_AC_TAGVAR(archive_cmds, $1) in
> +    *'~'*)
> +      # FIXME: we may have to deal with multi-command sequences.
> +      ;;
> +    '$CC '*)
> +      # Test whether the compiler implicitly links with -lc since on some
> +      # systems, -lgcc has to come before -lc. If gcc already passes -lc
> +      # to ld, don't add -lc before -lgcc.
> +      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
> +      $rm conftest*
> +      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
> +
> +      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
> +        soname=conftest
> +        lib=conftest
> +        libobjs=conftest.$ac_objext
> +        deplibs=
> +        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
> +        compiler_flags=-v
> +        linker_flags=-v
> +        verstring=
> +        output_objdir=.
> +        libname=conftest
> +        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
> +        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
> +        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc 
> \" \>/dev/null 2\>\&1)
> +        then
> +         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
> +        else
> +         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
> +        fi
> +        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
>        else
> -       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
> +        cat conftest.err 1>&5
>        fi
> -      _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
> -    else
> -      cat conftest.err 1>&5
> -    fi
> -    $rm conftest*
> -    AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
> -    ;;
> -  esac
> -fi
> +      $rm conftest*
> +      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
> +      ;;
> +    esac
> +  fi
> +  ;;
> +esac
>  ])# AC_LIBTOOL_PROG_LD_SHLIBS
> 
> 
> 
> _______________________________________________
> Libtool-patches mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/libtool-patches




reply via email to

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